npm install nodemon cross-env --save-dev
cross-env是运行跨平台设置和使用环境变量的脚本。它可以处理windows和其他Unix系统在设置环境变量的写法上不一致的问题。
配置以后使用 npm run dev去运行node,nodemon的作用是当代码更新以后会自动重启node
现在设置的当前环境是dev ,则通过process.env.NODE_ENV
可以获取到值为dev,通过环境变量去判断不同的运行环境,做出不同的操作。
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"dev":"cross-env NODE_ENV=dev nodemon ./bin/index.js"
}
每一个模块,就是js文件,尽量的只做一件事,便于管理和维护,代码也比较清晰
bin/index.js
就是开启一个服务
const http = require('http')
const PORT = 3000
const serverHandle = require('../app')
const server = http.createServer(serverHandle)
server.listen(PORT)
console.log('server run ...');
const serverHandle = (req,res)=>{
res.setHeader('content-type','application/json')
const resData = {
name:'zhangsan666',
age:19
}
res.end(JSON.stringify(resData))
}
module.exports = serverHandle
先返回假数据,数据操作在另一个模块。
新建src/router目录,不同的路由分成不同的js文件,以blog.js为例
const handleBlogRouter = (req,res)=>{
const method = req.moethod
const url = req.url
const path = url.split('?')[0]
// 博客列表接口
if(method === 'GET' && path === '/api/blog/list'){
return {
msg:'blog list'
}
}
}
module.exports = handleBlogRouter
注意:这个路由返回的是一个对象,在app逻辑处理函数中,要把这个对象接收以后,用json.strginfy转为json字符串传给前端。
const blogData = handleBlogRouter(req,res)
if(blogData){
res.end(JSON.stringify(blogData))
return false
}