nodejs学习笔记

初识nodejs

安装

nodejs安装教程请查看gulp安装教程的第一步:安装Node

模块

  1. 在nodejs中,模块有三个预定义对象require,exports,module(貌似CMD都是这么搞的);
  2. 用法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
var http = require('http');		//require 加载模块

exports.sayHello = function(){ //exports 暴露模块
console.log('hello');
}

//or

var sayHello = function(){
console.log('hello');
}
exports.sayHello = sayHello;

module.exports = function () { //module 我也不知道这个对象在Node中是干嘛的,目前还没用到,这个例子是替换当前模块的导出对象(把导出的对象换成函数)
console.log('Hello World!');
}

模块初始化

一个模块中的JS代码仅在模块第一次被使用时执行一次,并在执行过程中初始化模块的导出对象。之后,缓存起来的导出对象被重复利用。

模块路径解析规则

  • 内置模块

如果传递给require函数的是NodeJS内置模块名称,不做路径解析,直接返回内部模块的导出对象,例如require(‘fs’)。

  • node_modules目录

NodeJS定义了一个特殊的node_modules目录用于存放模块。例如某个模块的绝对路径是/home/user/hello.js,在该模块中使用require(‘foo/bar’)方式加载模块时,则NodeJS依次尝试使用以下路径。

1
2
3
/home/user/node_modules/foo/bar
/home/node_modules/foo/bar
/node_modules/foo/bar