Node.js 节点函数不返回数据
在my methods.JS文件中,有一个名为Node.js 节点函数不返回数据,node.js,express,Node.js,Express,在my methods.JS文件中,有一个名为addNedData()的函数,在创建数据后,有效负载将提供正确的输出 methods.addNewData = (req, res, modelName, body ) =>{ modelName.create({ id: body.id, title : body.title, }).then((payload) => { payload.success = true
addNedData()
的函数,在创建数据后,有效负载将提供正确的输出
methods.addNewData = (req, res, modelName, body ) =>{
modelName.create({
id: body.id,
title : body.title,
}).then((payload) => {
payload.success = true
return payload
}).catch(err => {
err.success = false
return err
})
}
从我的控制器文件中,我像这样调用函数。函数也正在被调用和执行,但在响应值中它不返回任何数据
exports.createCampaign = async (req, res) => {
let body = req.body
let response= await Methods.addNewData(req, res, Campaign, body)
console.log(response)
}
错误是响应未定义。您的
addNewData
需要返回承诺
methods.addNewData=(req、res、modelName、body)=>{
返回modelName.create({
id:body.id,
标题:body.title,
活动地点:body.campaign地点,
活动\u bp:body.campaign\u bp,
活动经理:body.Campaign\u经理,
活动持续时间:body.campaign持续时间,
创建人:body.created\u by
})。然后((有效载荷)=>{
payload.success=true
返回有效载荷
}).catch(错误=>{
err.success=false
返回错误
})
}
注意第2行的
return
关键字。您不会从该方法返回承诺。还有,为什么要将req和res传递给它?它们没有被使用,这意味着你的业务逻辑可以访问传输层,无视应用程序分层的全部意义。这是否回答了你的问题?您可以使用promise来解析或拒绝addNewDataI的输出,而不是使用函数。我已更新了我的问题。。实际上,我正在归还我的有效载荷。。但是为什么要倒下去呢。。我错过了(他们在没有任何理由的情况下投了两票。)。。