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简介+模块机制)的主要内容,如果未能解决你的问题,请参考以下文章