NodeJs 快速开始
NodeJs安装
下载
官网:https://nodejs.org/en/
下载:nodeJs
LTS:长期支持版本
Stable:测试版
一般情况下,只需要下载 LTS 版就可以了。
macOS 版下载 的是pkg包; 双击下载的包,一直 Next 就可以了
安装完成之后,打开终端
在终端中输入 node -v
可以看到输出 v 4.4.3
表示我现在安装的是 4.4.3 版,这说明已经安装好了
模块的概念
在终端中创建一个目录
Paste_Image.png然后在目录中创建两个文件
Paste_Image.png然后我们用编辑打开当前目录
Paste_Image.png在 module2.js 中输入:
module.exports = function(){
console.log('I am a method from module2 ');
}
在 module1.js 中输入
var module2 = require('./module2');
module2();
保存文件之后,在终端中通过 node 执行 module1
node module1
Paste_Image.png
修改一下 module2.js
module.exports = function(){
console.log('I am a method from module2 ');
}
module.exports.someProperty = 'someProperty from module2';
也修改一下 module1.js
var module2 = require('./module2');
module2();
console.log('module2.someProperty: ', module2.someProperty);
然后在终端中,重新执行 node
Paste_Image.png通过上述例子只是说明
require 导入对某一模块的依赖。
module.exports 将模块导出。
NPM简介
NodeJs 生态有很多开源的模块,可以通过 npm 的方式加载到项目中
首先,我们先初始化项目
NodeJs 初始化
NodeJs 项目初始化可以通过下面来执行
npm init
初始化之后,会自动生成一个 package.json 的文件,这个文件对项目过程中要用到的包进行管理。
{
"name": "hello-nodejs",
"version": "1.0.0",
"description": "",
"main": "module1.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"dependencies": {
"lodash": "^4.16.4"
}
}
- dependencies 管理项目的必需的依赖
- devDependencies 管理着是开发时需要依赖的包
如何添加一个资源包呢?
比如添加一个 underscore 的包,可以在终端中输入
npm install underscore --save
参数--save
表示加载到dependencies
中
如果使用参数--dev-save
则会加载到devDependencies
中
结束之后可以发现package.json 已经改变了
{
"name": "hello-nodejs",
"version": "1.0.0",
"description": "",
"main": "module1.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"dependencies": {
"lodash": "^4.16.4",
"underscore": "^1.8.3"
}
}
在 dependencies 中多了一行
"underscore": "^1.8.3"
HTTP Server
在 hello-nodejs 目录下新增一个 index.js 的文件
touch index.js
首先 HTTP Server 需要依赖 Node 内置的 http 模块
var http = require('http');
var server = http.createServer(function ( req, res ) {
res.write('hello NodeJs');
res.end();
});
server.listen(3000);
然后在终端中:
Paste_Image.pngnode index
如果没有报错,就表示已经运行成功
打开浏览器访问 http://localhost:3000
可以看到,在createServer 方法的 回调函数中有两个参数:
- req
- res
这两个参数都有哪些方法呢?
可以查看https://nodejs.org/api/http.html
通过 req 参数可以获得 Header,Url等信息
示例:
修改 index.js代码:
var http = require('http');
var server = http.createServer(function ( req, res ) {
res.write('hello NodeJs\n');
res.write(JSON.stringify(req.headers));
res.end();
});
server.listen(3000);
然后在终端重新
Paste_Image.pngnode index
然后在浏览器可以看到