主要写一下 fs 模块、 http 模块、express 模块、koa 框架和 Event Loop。
一、 fs 模块
fs 模块为文件系统模块,即 file system。常用的读取文件的接口为:fs.readFile(path[,options],callback)
和 fs.readFileSync(path[,options],callback)
,使用方法如下:1
2
3
4
5
6
7
8
9let fs = require('fs');
fs.readFile('./index.html',(err,data) => {
if(err){
console.log(err)
}
console.log('打印输出文件内容')
console.log(data)
console.log(data.toString())
})
两个接口的区别在于一个是异步的一个是同步的。同步和异步的区别就不过多解释了。
二、 http 模块
提供一个 http 服务。提供 http 服务的 API 为 http.createServer([options][,requestListener])
。直接看代码示例:1
2
3
4
5
6
7var http = require('http');
http.createServer(function(req, res){
console.log(req.url)
res.writeHead(200, { 'Content-Type': 'text-plain' });
res.end('Hello World\n');
}).listen(8124);
三、 express 模块
详情可查看 express 官网。
新建一个空白目录,在当前目录下分别执行以下指令:1
2
3npm init -y // 初始化项目
npm install --save express // 安装 express
touch app.js // 新建入口文件
其中,app.js 文件代码为;1
2
3
4
5
6
7
8
9
10
11
12
13var express = require('express');
var app = express();
app.get('/', function (req, res) {
res.send('Hello World!');
});
var server = app.listen(3000, function () {
var host = server.address().address;
var port = server.address().port;
console.log('Example app listening at http://%s:%s', host, port);
});
在终端中输入指令 node app.js
。按提示在浏览器中打开地址。如果通过 express 读取文件并返回给浏览器:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20var express = require('express');
var path = require('path');
var fs = require('fs');
var app = express();
app.get('/', function (req, res) {
res.send('Hello World!');
});
app.get('/abc',(req,res)=>{
let str = fs.readFileSync(path.join(__dirname,'./package.json'),'utf-8');
res.send(str);
})
var server = app.listen(3000, function () {
var host = server.address().address;
var port = server.address().port;
console.log('Example app listening at http://%s:%s', host, port);
});
express 还实现了一个功能,就是能够通过启动服务直接访问 public 目录下的任何文件。只需要添加一行代码:1
app.use(express.static('public'));
如果此时根目录下的 public 下有文件 index.css ,那么通过 http://localhost:3000/index.css
可直接访问此文件。
通过 Heroku 可将 express 项目进行部署。