gpt4 book ai didi

javascript - 如何在同一 Controller 文件中引用另一个 put 操作方法?

转载 作者:太空宇宙 更新时间:2023-11-04 02:05:40 24 4
gpt4 key购买 nike

我的项目涉及两个模型 - 用户和请求 - 用户可以创建送餐请求并附加代币作为奖励,而另一个用户可以帮助交付和领取代币。

在同一个controller.js文件中,我有一个方法transferTokens(放置操作)和另一个delete(删除操作)方法。我的问题是如何在transferTokens 末尾调用delete 方法?我将这两种方法分开,因为在某些情况下,用户可以删除自己的请求而无需任何 token 传输(即,在任何其他用户同意传递该请求之前)。

代码是:

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 未定义。通常,用户单击 View 中的删除按钮,但在本例中,用户帮助程序单击“声明 token ”按钮,该按钮将启动 TransferTokens put 操作。

编辑:我设法使用 app.set 找到了出路

app.set('res', res);
controller.delete(req, app.get('res'))

最佳答案

//请指定得更清楚

transferTokens :function(req,res){
var model = req.allParams();

Request
.findOne({ _id: req.params.id })
.exec(function(err,request){
if(err) err

if(request){

//in this you should match any condition with your another table
// so supose we have User table
var userFilter ={
id :request.id(as ur key)
}

User
.findOne(userFilter)
.exec(function(err,user){
if(err) return err

if(user){
user.destroy(function (err) {
if (err) return res.toJson(false, [], "Error.");

return res.toJson(true, user, "Sucess.");
});
}
})

}
else{
return empty
}
})
}

关于javascript - 如何在同一 Controller 文件中引用另一个 put 操作方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44426988/

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