我在 Express 中设置了一条如下所示的路线:
app.get('/api/:type/:id', api.getItemById);
函数 api.getItemById 在路由的 api 模块中。但是在 api 模块中,我必须运行一个连接到数据库的函数,然后定义所有响应函数,如下所示:
couchbase.connect(dbConfiguration, function (err, bucket) {
if (err) {
throw (err)
}
exports.getItemById = function (req, res) {
if (req.params.type == 'tag' || req.params.type == 'user' || req.params.type == 'asset' || req.params.type == 'expense' || req.params.type == 'income') {
get(req, res, req.params.type);
} else {
res.send(400);
}
};
});
问题是在这种情况下,应用程序找不到 getItemById 函数并抛出:
.get() requires callback functions but got a [object Undefined]
我不确定我做得对。如果在回调函数中定义,您能否建议我如何使该函数对节点应用程序可见?