我是Node.js的新手。目前,我正在帮助我的团队使用 Nodejs 开发一个 restful api。我想问我是否必须在单个文件中实现所有 app.get 方法和业务逻辑?
例如,我的服务器.js:
var express = require('express')
var bodyParser = require('body-parser')
var app = express()
let family = {}
app.use(bodyParser.json())
app.route('/family')
.get(function (request, response) {
response.json(family)
})
.post(function (request, response) {
family[request.body.isbn] = {
name: request.body.name,
relationship: request.body.relationship,
age: request.body.age
}
response.json({message: 'Success'})
})
app.listen(8080, function () {
console.log('Server is started')
});
如果我想构建一个文件调用系列.js并将所有与家族相关的逻辑从服务器.js移动到内部,该怎么办?
以及如何从服务器.js调用它?
有人可以帮忙吗?谢谢。
当然
可以。最主要的是,如何将app
引用传递给模块。我已经创建了模块并在模块的主函数中传递了app
实例。
文件夹结构:
server.js
/routes
family.js
login.js
user.js
...
服务器.js
//include
var express = require('express');
var bodyParser = require('body-parser');
var app = express();
app.use(bodyParser.json())
//init routes
require('../routes/family')(app); //passing "app" instance
require('../routes/login')(app);
require('../routes/user')(app);
//start server
app.listen(8080, function () {
console.log('Server is started')
});
家庭.js
//routes
module.exports = function(app) { //receiving "app" instance
app.route('/family')
.get(getAPI)
.post(postAPI);
}
//API functions
function getAPI(request, response) {
response.json(family);
}
function postAPI(request, response) {
family[request.body.isbn] = {
name: request.body.name,
relationship: request.body.relationship,
age: request.body.age
}
response.json({message: 'Success'});
}