初识Node.js

一.Node.js是什么?
     Node.js不是一种独立的语言,也不是一个JavaScript框架,更不是浏览器的库,不能与jQuery,ExtJS相提并论。Node.js是一个让JavaScript运行在服务器端的开发平台。
     Node.js可以作为服务器向用户提供服务,与PHP等相比,它跳过了Apache,IIS等服务器,直接面向前端开发。如图:


二.Node.js能够做什么?
     具有复杂逻辑的网站;
     基于社交网络的大规模Web 应用;
     Web Socket 服务器;
     TCP/UDP 套接字应用程序;
     命令行工具;
     交互式终端程序;
     带有图形用户界面的本地应用程序;
     单元测试工具;
     客户端JavaScript 编译器

三.Node.js异步式I/O和事件编程模式
Node.js 最大的特点就是采用异步式I/O 与事件驱动的架构设计。

传统 多线程同步式I/O:



传统的实现方式:
res = db.query('SELECT * from some_table');   //执行到这一行的时候,线程会阻塞,等待数据库返回查询结果,然后再继续处理后面的代码
res.output();

Node.js单线程异步式:

db.query('SELECT * from some_table', function(res) {   //进程在执行到db.query 的时候,不会等待结果返回,而是直接继续执行后面的语句,直到进入事件循环。
      res.output();
});

在Node.js 中如何用异步的方式读取一个文件,下面是一个例子:
//readfile.js
var fs = require('fs');
fs.readFile('file.txt', 'utf-8', function(err, data) {
    if(err) {
        console.error(err);
    } else{
        console.log(data);
    }
});
console.log('end.');
运行的结果如下:
end.
Contents of the file. 

Node.js 的事件循环机制
Node.js 的异步机制是基于事件的,所有的磁盘I/O、网络通信、数据库查询都以非阻塞的方式请求,返回的结果由事件循环来处理。



四.Node.js的性能
Node.js 用异步式I/O 和事件驱动代替多线程,带来了可观的性能提升.Node.js 除了使用V8 作为JavaScript引擎以外,底层还是用了C/C++库支持时间驱动和异步式I/O。

五.Node.js模块和包
模块是Node.js 应用程序的基本组成部分,文件和模块是一一对应的。换言之,一个Node.js 文件就是一个模块。
以一个例子来了解模块。创建一个 module.js 的文件,内容是:
//module.js
var name;
exports.setName = function(thyName) {
    name = thyName;
};
exports.sayHello = function() {
    console.log('Hello ' + name);
};
在同一目录下创建getmodule.js,内容是:
//getmodule.js
var myModule = require('./module');
myModule.setName('BYVoid');
myModule.sayHello();
运行node getmodule.js,结果是:
Hello BYVoid

Node.js 的包是一个目录,其中包含一个JSON 格式的包说明文件package.json。严格符合CommonJS 规范的包应该具备以下特征:
package.json 必须在包的顶层目录下;
二进制文件应该在bin 目录下;
JavaScript 代码应该在lib 目录下;
文档应该在doc 目录下;
单元测试应该在test 目录下。

六.Node.js包管理器(npm)
获取一个包
使用npm 安装包的命令格式为:
npm [install/i] [package_name]
例如你要安装express,可以在命令行运行:
$ npm install express 








  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值