首次使用Node.js,Mongodb,Express进行网站开发。
假设您在与路由或驱动程序文件分开的文件中有构造函数'CreateObject'
。
我可以使用module.exports.CreateObject
,然后只需要在驱动程序中创建对象,这样我就可以调用单个函数并让数据库在我调用它时直接将数据插入到对象中我的路由文件?
(即'当用户访问页面时,导入CreateObject构造函数db.insert(CreateObject object, data)
,现在将该信息导出到我们的显示功能)
导出是否像那样工作?
我试图通过将每个条目添加到具有'./:collection/:item'
的数组来避免将每个文件路由到我的显示功能。
答案 0 :(得分:1)
Express并不关心构造函数或对象。你当然可以使用它们,但是你需要做一些管道才能在中间件功能中使用它们。相反,您可能想要考虑中间件功能。
节点开发中的一个常见模式是在其他文件中定义一个(或多个)中间件函数,然后将这些函数放入您的应用程序中。您可以将任意数量的中间件函数链接在一起并将它们附加到路由中。像这样:
// app.js
var dbInserter = require('./myDbInserter.js');
app.use('/:collection/:item', dbInserter, otherMiddleware ... );
// myDbInserter.js
module.exports = function(req,res,next) {
var collectionName = req.params.collection;
var itemId = req.params.item;
// create object, insert into db, etc.
next();
}