从零开始搭建一个Node服务
需求
* *为自己的移动端项目PositivePersons搭建完整的Node服务。
用到的工具
实现步骤
安装Node.js
- 三种安装方式
- 通过安装包安装。
- 通过源码编译安装。
- 在 Linux 下可以通过 yum|apt-get 安装,在 Mac 下可以通过 Homebrew 安装。
- 测试安装结果
1
2$ node -v
$ npm -v
关联Git
由于代码要放在GitHub,所以我在GitHub创建了一个仓库。
1 | $ mkdir PositivePersonsNode |
初始化express
1 | $ npm init // 初始化一个空项目,npm init 有智能的默认选项 |
创建程序入口
- 新建 index.js 并打开
1
2$ touch index.js
$ open -sublime index.js - 添加如下代码:
1
2
3
4
5
6
7
8const express = require('express')
const app = express()
app.get('/', function (req, res) {
res.send('hello, express')
})
app.listen(3000)
安装supervisor
1 | $ npm i -g supervisor |
使用supervisor --harmony index.js
启动程序,而不用node --harmony index.js
。supervisor会监听当前目录下 node 和 js 后缀的文件,当文件发生改动时自动重启程序:
1 | $ supervisor --harmony index.js // 启动程序,访问localhost:3000,页面应显示 hello, express。 |
express.Router的使用
将所有路由控制函数都放在index.js
并不是一个好的选择,这时就需要expres.Router的路由实现方案。
1 | & mkdir routes |
代码剥离:
- index.js
1
2
3
4
5
6
7
8
9const express = require('express')
const app = express()
const indexRouter = require('./routes/index')
const homeRouter = require('./routes/home')
app.use('/', indexRouter)
app.use('/home', homeRouter)
app.listen(3000) - routes/index.js
1
2
3
4
5
6
7
8const express = require('express')
const router = express.Router()
router.get('/', function (req, res) {
res.send('hello, this is root')
})
module.exports = router - routes/home.js
1
2
3
4
5
6
7
8const express = require('express')
const router = express.Router()
router.get('/', function (req, res) {
res.send('hello, this is home')
})
module.exports = router
第一个完整的接口
修改 routes/home.js 文件:
1 | const express = require('express') |
fs模块用于对系统文件及目录进行读写操作。模块中所有方法都有同步和异步两种形式。