NodeJs - [Restful API] 如何在不同的js文件中分离应用程序获取方法



我是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'});
}

最新更新