【发布时间】:2017-06-08 20:09:48
【问题描述】:
我的项目涉及两个模型 - 用户和请求 - 用户可以创建送餐请求并附加代币作为奖励,而另一个用户可以帮助交付和领取代币。
在同一个 controller.js 文件中,我有一个方法 transferTokens(放置操作)和另一个 delete(删除操作)方法。我的问题是如何在 transferTokens 结束时调用 delete 方法?我将这两种方法分开,因为在某些情况下,用户可以删除自己的请求而无需任何令牌传输(即,在任何其他用户同意交付该请求之前)。
代码是:
let controller = {
transferTokens: (req, res) => {
// Request.findOne({ _id: req.params.id })
// ...
// User.findOneAndUpdate...
// ... add tokens to user-helper
// controller.delete();
},
delete: (req,res) => {
// Request.findOneAndRemove
// ...
// res.redirect('/home');
}
}
module.exports = controller
所以,这绝对是错误的。该请求确实被删除,但错误消息是 res 未定义。通常,用户单击视图中的删除按钮,但在这种情况下,用户助手单击“声明令牌”按钮,该按钮启动 transferTokens 放置操作。
编辑:我设法使用 app.set 找到了出路
app.set('res', res);
controller.delete(req, app.get('res'))
【问题讨论】:
-
您可以只创建函数
delete,该函数将删除特定记录并在transferToken以及delete控制器函数中调用它 -
我已经这样做了,但是删除函数不是通过通常的方式(从表单)获取 'req' 和 'res' 参数,而是被另一个控制器操作调用
标签: javascript node.js express