nodejs同步调用:获取数据库callback,并将其parsing到前端
在我的NodeJS后端我有一个函数,我从sqlite数据库中获得一个值,我想把它发送到前端,但它总是说Object { msg: false }
我想我需要一个函数,我可以做一个同步调用function。 我的代码:
router.get('/', function(req, res, err){ var msg = " "; var uid = req.session.user; function printMsg(message){ msg = message; } db.getMsg(uid, printMsg); if(err){ res.send({msg : "No message available"}); } else{ res.send({msg: msg}) } });
谁能帮我? 提前致谢。
我假设db.getMsg是你自己的代码,如果成功,将抛出错误,如果命中错误,并在callback中返回消息
router.get('/', function(req, res, err){ try { var uid = req.session.user; db.getMsg(uid, function(msg) { if (msg) res.send({msg: msg}) else res.send({msg : "No message available"}); }} } catch (error) { res.send({error: error.toString() }); } });
你的db.getMsg()函数应该如下定义
function getMsg(uid, callback){ // your logic var resultFromDb = ''; // Contents from db. if( not success ){ // If that fails err = //define error object callback(err) // Call the callback function only with an error. } else{ callback(undefined, resultFromDb ) // else, call the callback function with an // undefined value for the error. } }
而当你调用db.getMsg()时,按如下所示调用它
db.getMsg(uid, function(err, result) { if(err){ res.send({msg : "No message available"}); }else{ msg = result res.send({msg: result}) } })
- 如何使用npm synchronize在node.js中的variables中返回callback
- 与node.js文件同步:unision == tcp == node —– —– node == tcp == unison
- BrowserSync非常慢
- 使用EventSourcing(NodeJS,MongoDB,JSON)跨多个偶尔连接的客户端同步数据
- 自定义节点同步function
- 在与database-nodeJS的连接上同步elasticsearch
- 在同一个node.js程序中调用asynchronus和synchronus函数
- 在承诺fs.writeFile,asynchronous同步的东西
- Javascriptdate()初始化格式不正确