从零开始搭建一个Node服务

需求

为自己的移动端项目PositivePersons搭建完整的Node服务。

用到的工具

实现步骤

安装Node.js
  1. 三种安装方式
  • 通过安装包安装。
  • 通过源码编译安装。
  • 在 Linux 下可以通过 yum|apt-get 安装,在 Mac 下可以通过 Homebrew 安装。
  1. 测试安装结果
$ 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模块用于对系统文件及目录进行读写操作。模块中所有方法都有同步和异步两种形式。

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容