使用Node编写应用程序主要就是在使用:
- EcmaSricpt语言
- 和浏览器不一样,在Node中没有BOM, DOM
- 核心模块
- 文件操作的fs
- http 服务的http
- url 路径操作模块
- path 路径处理模块
- os 操作系统信息
- 第三方模块
- art-template
- 必须通过npm来下载才可以使用
- 自己写的模块
- 自己创建的文件
CommonJS模块规范
在Node中的javascript还有一个很重要的概念:模块系统
- 模块作用域
- 使用require方法用来加载模块
~~~
var name = require ('模块');
~~~
- 使用exports接口对象用来导出模块中的成员
- 导出多个成员(必须在对象中):
~~~
exports.a = 123;
exports.c = function(){
console.log(123);
};
~~~
- 导出单个成员(拿到的就是函数,字符串):
~~~
module.exports = 'hello'
//后者会覆盖前者
module.exports = function(x, y){
return x + y;
}
~~~
- module.exports也可以导出多个成员:
~~~
module.exports = {
add: function() {
return x + y;
},
str: 'hello'
~~~
~~~
// require是一个方法
// 它的作用就是用来加载一个模块
// 在Node中,模块有三种
// 具名的核心模块,例如 fs, http
// 用户自己编写的文件模块
// 相对路径必须加 ./
// 后缀名可以省略
console.log('开始执行a');
require('./b.js')
console.log('a执行结束');
~~~
在Node中,没有全局作用域,只有模块作用域,外部访问不到内部,内部也访问不到内部,这就是模块作用域
但是可以被exports导出