nodejs从0到1(Node简介+模块机制)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nodejs从0到1(Node简介+模块机制)相关的知识,希望对你有一定的参考价值。

1.nodejs简介:

1.Node不是js应用,而是js运行平台。客户端js通过浏览器和v8引擎联系到了一起,服务器端js用Node和v8又牵起了小手,所以说Node是运行平台,类似于客户端的浏览器。Node采用c++语言编写,v8引擎也是c++写的。Node为神马用c++写呢?这是个有趣的故事,详见《深入浅出Nodejs》.

2.模块机制:

说模块机制之前,先说下CommonJS.CommonJS是一种规范。原来js规范比较薄弱,不利于js大规模应用:主要有以下的缺陷:

2.1:js没有模块系统,没有原生的支持密闭作用域或依赖管理。

2.2:js没有标准库,除了核心库以外,没有文件系统的API,没有IO流API.

2.3:js没有标准接口,没有web server 或者数据库的统一接口。

2.4:js没有包管理系统,不能自动加载和安装依赖。

于是乎就有了CommonJS规范,就是为了解决以上问题,Node.js就是这种规范的实现。Node自身实现了require方法作为其引入模块的方法,同时NPM也是基于这种规范。

3.模块的简单定义及应用:

写一个circle.js

1 var PI=Math.PI;
2 exports.area=function(r){
3     return PI*r*r;
4 }
5 exports.zhouchang=function(r){
6     return 2*PI*r;
7 }

写一个testCircle.js

1 var circle=require("./circle");
2 console.log("erea:"+circle.area(1)+"zhouhcang:"+circle.zhouchang(1));

执行结果:

技术分享

require是导入;exports是导出,内部方法原理是由node自身实现的,在es6之前node导入导出用这两个实现,es6出现后,export;import成为主流。

ES6发布的module并没有直接采用CommonJS,甚至连require都没有采用,也就是说require仍然只是node的一个私有的全局方法,module.exports也只是node私有的一个全局变量属性。

 

以上是关于nodejs从0到1(Node简介+模块机制)的主要内容,如果未能解决你的问题,请参考以下文章

Nodejs的模块化

npm 模块安装机制简介

[转] npm 模块安装机制简介

[NodeJS]Node模块原理

npm 模块安装机制简介

深入浅出Node.js--数据通讯,NET模块运行机制