Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 节点函数不返回数据_Node.js_Express - Fatal编程技术网

Node.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

在my methods.JS文件中,有一个名为
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的输出,而不是使用函数。我已更新了我的问题。。实际上,我正在归还我的有效载荷。。但是为什么要倒下去呢。。我错过了(他们在没有任何理由的情况下投了两票。)。。