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