node.JS一些简单的知识点

Node.js 是一个 JavaScript 运行时环境。听起来还不错,不过这究竟意味着什么?它又是如何运作的?
Node 运行时环境包含执行 JavaScript 程序所需要的一切。在这里插入图片描述
JavaScript 原来是只能在浏览器中运行的,当把它扩展成为可以在你的计算机上作为独立的程序运行时,Node.js 就出现了。

现在你可以用 JavaScript 做更多的事情,而不仅仅是用在网站的互动和特效上。

JavaScript 现在能够去做其他脚本语言(如Python)可以执行的操作。

你 Chrome 浏览器中的 JavaScript 和 Node.js 都在 V8 引擎上运行。该引擎将你的 JavaScript 代码转换为更快的机器代码。机器代码是低级代码,计算机可以直接运行而无需先解释它。
为什么选择 Node.js?
这是 Node.js 官方网站上给出的正式定义:
Node.js是基于 Chrome 的 V8 JavaScript 引擎构建的 JavaScript 运行时环境。
Node.js 使用事件驱动的非阻塞 I/O模型,轻量且高效。
Node.js 的包生态系统 npm 是世界上最大的开源库生态系统。。
nodejs特点
1异步式IO
所谓异步式就是指程序自动往下运行,直到回调函数请求完毕之后才接着执行回调函数内的操作。
2事件驱动
就是指一次调用回调函数的过程。
阻塞 I/O
在阻塞方法中,在 user1 的数据被输出到屏幕之前,不会启动 user2 的数据请求。
如果这是一个Web服务器,我们必须为每个新用户启动一个新线程。但 JavaScript 是单线程的(实际上不是真的,但它有一个单线程的事件循环,我们稍后会讨论)。所以这会使 JavaScript 不太适合多线程任务。
这就是非阻塞的用武之地。
非阻塞 I/O
另一方面,如果用非阻塞请求,可以在为 user2 发起数据请求时,无需先等待对 user1 请求的响应。你可以并行启动这两个请求。
这种非阻塞 I/O 消除了对多线程的需要,因为服务器可以同时处理多个请求。
JavaScript 事件循环
以下是 JavaScript 事件循环工作原理简要的逐步描述。
作者:京程一灯
将 main() 送入调用栈。
将 console.log() 送入调用栈。然后立即运行并弹出。
将 setTimeout(2000) 送入栈。 setTimeout(2000)是一个 Node API。在调用它时,先注册事件回调。事件将等待 2000 毫秒,然后回调这个函数。
在 API 中注册后,setTimeout(2000) 从调用堆栈中弹出。
现在第二个 setTimeout(0) 以相同的方式注册。我们现在有两个 Node API 等待执行
等待 0 秒后,setTimeout(0) 被移动到回调队列,同样的事情发生在 setTimeout(2000)。
在回调队列中,函数等待调用栈为空,因为每个语句都执行一次。这由事件循环处理。
最后一个 console.log() 运行,并且 main() 从调用栈中弹出。
如果事件循环检测到到调用堆栈为空且回调队列不为空。它将回调(以先进先出顺序)移动到调用栈并执行。
NPM
在这里插入图片描述
这些是由令人敬畏的社区所构建的库,它能解决你的大多数的常规问题。 npm(Node package manager))中有很多可以用在你的程序中包,可以使你的开发更快更有效。
Require
Require 做三件事:
它从 Node.js API 加载与 Node.js 捆绑在一起的模块,如文件系统和 HTTP 等。
它加载从 npm 安装的第三方库,如 Express 和 Mongoose 等。
它允许你 require 自己的文件并把项目模块化。
Require 是一个函数,它接受参数 “path” 并返回 module.exports。
Node 模块
Node 模块是一个可重用的代码块,它的存在不会对其他代码产生意外地影响。
你可以编写自己的模块并在各种程序中使用它。 Node.js 有一组内置模块,无需进一步安装即可使用。
fs 文件模块 (读文件)
在nodejs文件夹中创建fs.txt文档与fs.js

//1.引入fs模块
var fs=require('fs');
//2.读取文件
fs.readFile(fs.txt,function(err,data){//err:读取失败   data:表示文件中的内容
  console.log(err);//没有错就输出null  有错就报错
  if(err){
    console.log();
  }else{
    //console.log(data);//2进制
    console.log(data.toString);//转化为字符串
  }
**```
fs文件模块(写文件)**
创建一个index.js

```javascript
//1.引入fs模块
var fs=require('fs');
//2.写文件
//fs.wirteFile('文件名','内容',function(err){})
fs.wirteFile('aaa.txt','Where is my love,See one love one',function(err){
  console.log(err);
})

node.js的基本使用就如上 更多及连接数据库就有待更新

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值