REST-API-03-Routers

nodemon

在我们开发PHP,Java等web项目的时候,修改了项目代码,服务器都会自动重启,让我们的改动生效,但是node并不会这样,必须手动去重启一下,这样很烦人的啊,很浪费时间,于是就有大神开发了自动重启的工具——nodemon,很简单的。

1
2
3
$ npm install nodemon -g
$ nodemon -v
1.11.0

使用 npm start 脚本 , 配置 package.json 文件
1

1
$ npm start

controllers and routers

app.js

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
const express = require('express');
const logger = require('morgan')
const app = express();
//Routes
const users = require('./routers/users');
const index = require('./routers/index');
// Middlewares
app.use(logger('dev'));
//Routes
app.use('/users',users);
app.get('/',index);
//Catch 404 Errors and forword them to error handler
app.use((req,res,next) => {
const err = new Error('Not Found');
err.status = 404;
next(err);
});
//Error handler function
app.use((err,req,res,next) => {
//Response to client
const error = app.get('env') === 'development' ? err : {};
const status = err.status || 500;
//Reponse to ourselves
res.status(status).json({
error:{
message: error.message
}
});
});
//Start the server
const port = app.get('port') || 3000;
app.listen(port,()=> console.log(`Server is listening on port ${port}`));

routers/users.js

1
2
3
4
5
6
7
8
9
10
11
12
13
14
const express = require('express');
const router = express.Router();
const userController = require('../controllers/users');
router.route('/')
.get(userController.index)
.post();
module.exports = router;
/*
另一种写法
router.get('/',(req,res,next)=>{
});
router.post('/',(req,res,next)=>{
});
*/

controllers/user.js

1
2
3
4
5
6
7
module.exports = {
index:(req,res,next) => {
res.status(200).json({
message:'You are request users page.'
});
}
}

完整代码

https://github.com/monk8/expressjs-rest-api-server/tree/lesson03

知识来源
使用nodemon让node自动重启