gpt4 book ai didi

node.js - Express.js : Use Routers inside Routers

转载 作者:太空宇宙 更新时间:2023-11-03 21:59:09 25 4
gpt4 key购买 nike

我有这样的路由器:

exports.read = (req,res) ->
// do stuff with DB
res.status(200).send
data:data

现在我如何在另一个路由器中使用这个路由器,称之为exports.wrapper?我希望避免一次又一次重写我的数据库请求。我想推荐这种方法吗?

最佳答案

我不建议尝试将路由器相互包裹起来。

建议在 Express 4 中使用 Express 的路由器对象,如下所示:

// router.js
var myRouter = express.Router();
myRouter.route('/read', myController.readMethod);

然后在您的 Controller 中,您将处理请求并以结果调用结束:

// myController.js
exports.readMethod = function(req, res) {
var data = readFromDB(req.params);
res.send('read method renders', data);
}

exports.readMethod2 = function(req, res) {
var data = readFromDB(req.params);
res.send('read method 2 renders', data);
}

function readFromDB(params) {
// make a call to the DB (maybe via a model)
// return some data
}

希望有帮助

编辑此外,我建议将数据库调用包装在模型中,以将它们从路由器或 Controller 逻辑中抽象出来。有关使用 MVC 的组织良好的 Express 应用程序的引用,请查看此 Yeoman 生成器 - https://github.com/ngenerio/generator-express-simple

第二次编辑在我非常简短的示例中,如果它所做的只是从数据库获取数据并将其放入模型中,那么将 readFromDB 方法外部化到模型会使该函数毫无意义。

关于node.js - Express.js : Use Routers inside Routers,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32093099/

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