gpt4 book ai didi

node.js - 用回调表达方法的返回值

转载 作者:行者123 更新时间:2023-12-05 03:09:20 26 4
gpt4 key购买 nike

为什么会这样

router.get('/eventTest/:id', function (req, res) {

var event = Event.getEventById(req.params.id, function (err, rows) {
if(err) {
return err;
} else {
return rows;
}
});

res.json(event);

});

返回{
“域”:空,
“_events”:{},
“_eventsCount”:0,
“_callSite”:{},
“_ended”:假的,
“_idleNext”:空,
“_idlePrev”:空,
“_idleStart”:空,
“_idleTimeout”:-1,
“_repeat”:空,
"sql": "select * from event where id=?",
“值(value)观”:[
“1”
],
“typeCast”:是的,
“嵌套表”:假的,
“_resultSet”:空,
“_结果”: [],
“_字段”:[],
“_index”:0,
“_loadError”:空
}

这个和我正在调用的方法之一的示例

`getEventById:函数(id,回调){

    return db.query("select * from event where id=?",[id],callback);
}

`

而不是像我在 Event.getEventById 回调中使用 res.json(rows) 时那样的实际值?

我需要它来调用多个方法并将它们添加到一个对象,然后以 JSON 格式发送该对象

谢谢

最佳答案

根据您的代码,是的,您需要从方法发送响应。

因为 Node.js 本质是 async 所以你需要以这种方式编写你的代码

在你的路线上尝试一下

Event.getEventById(req.params.id, function (err, rows) {
if(err) {
res.status(500).send(err);
} else {
res.status(200).send(rows);
}
});

更新

To execute multiple methods and send all records at single time then go through

async modulepromise

关于node.js - 用回调表达方法的返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43345150/

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