NodeJS学习(一)-基础概念

理解NodeJS

NodeJS是一个运行环境,通俗地讲也就是JS解析器。

JS是脚本语言,每个脚本语言都需要一个解析器才能运行。
以前的JS都是跟HTML存在,我们把页面挂载在浏览器的时候,这时候的浏览器就是一个解析器的角色。
对于JS,需要独立运行,这时候也需要一个解析器,也就是NodeJS。

对于浏览器这个解析器来说,JS的用途只是操作DOM,所以浏览器就提供document之类的内置方法

对于NodeJS这个解析器来说,JS的用途是操作磁盘文件以及HTTP服务,所以NodeJS就提供了fs、http等内置对象。

NodeJS的用途

实现高性能的web服务,事件机制以及异步IO模式

安装并运行

安装略。

打开命令行,输入node便可以进入node命令模式,这时候你可以声明var,各种console.log进行各种hello world!

权限相关

使用NodeJS监听80或443端口提供http服务时需要root权限。
这里推荐的方式是使用sudo命令运行Nodejs

1
sudo node server.js

sudo在这里应该是代表超级管理员的意思。

模块

require

require用于模块加载以及使用,传入模块名称,返回一个模块导出的对象。模块名称可使用相对路径,也可以是绝对路径。模块的后缀.js可以省略。

1
var moduleFoo = require('./hello.js');

exports

exports用于模块的导出。require引用的模块返回的对象就是引入模块export的对象。

1
2
3
exports.hello = function(){
console.log('hello gringe');
}

module

module用途较多是替换当前模块的导出对象。例如模块导出对象默认是一个普通对象,如果想改成一个函数的话,可以使用以下方式

1
2
3
module.exports = function(){
console.log('hello new gringe');
}

代码模块化,最好有一个主入口文件,引入其他模块。

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

CMD模块系统