gpt4 book ai didi

javascript - NodeJs - [Restful API] 如何分离不同js文件中的app get方法?

转载 作者:行者123 更新时间:2023-11-30 11:38:43 25 4
gpt4 key购买 nike

我是 Node.js 新手。目前我正在帮助我的团队使用 Nodejs 开发一个 restful api。请问是不是必须把所有的app.get方法和业务逻辑都放在一个文件里?

例如我的server.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')
});

如果我想构建一个文件调用 family.js 并将所有与家庭相关的逻辑从 server.js 移到里面怎么办?

以及如何从 server.js 中调用它?

有人可以帮忙吗?谢谢。

最佳答案

当然可以。最主要的是,如何将 app 引用传递给您的模块。我创建了模块并在模块的主要函数中传递了 app 实例。

文件夹结构:

server.js
/routes
family.js
login.js
user.js
...

server.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')
});

family.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'});
}

关于javascript - NodeJs - [Restful API] 如何分离不同js文件中的app get方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43427276/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com