Node.js nodejs同步调用:获取数据库回调并将其解析到前端
在我的NodeJS后端,我有一个函数,我从sqlite数据库中获取一个值,我想把它发送到前端,但它总是说Node.js nodejs同步调用:获取数据库回调并将其解析到前端,node.js,sqlite,callback,synchronous,Node.js,Sqlite,Callback,Synchronous,在我的NodeJS后端,我有一个函数,我从sqlite数据库中获取一个值,我想把它发送到前端,但它总是说Object{msg:false}我想我需要一个函数,在这里我可以对函数进行同步调用。 我的代码: 有人能帮我吗?提前感谢。我假设db.getMsg是您自己的代码,如果命中错误,它将抛出错误,如果成功,它将在回调中返回消息 router.get('/', function(req, res, err){ try { var uid = req.session.user;
Object{msg:false}
我想我需要一个函数,在这里我可以对函数进行同步调用。
我的代码:
有人能帮我吗?提前感谢。我假设db.getMsg是您自己的代码,如果命中错误,它将抛出错误,如果成功,它将在回调中返回消息
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(uid, function(err, result) {
if(err){
res.send({msg : "No message available"});
}else{
msg = result
res.send({msg: result})
}
})
当您调用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(uid, function(err, result) {
if(err){
res.send({msg : "No message available"});
}else{
msg = result
res.send({msg: result})
}
})
重复:如何将msg保存到全局变量中?因为我想编辑msg,它现在只在db.get函数中起作用。。但是我想在db.get函数之外编辑它。尽量不要在全局变量中设置任何内容,我建议您使用db.setMsg(newMsg)并使用相同的db.getMsgI检索它。我不想在这里设置消息,我想设置全局变量!在那里我可以保存数据库中的内容。我已经编辑了代码。这回答了你的问题吗?