gpt4 book ai didi

mysql - 使用 NodeJS 和 KnexJS 同步 MySQL 查询

转载 作者:行者123 更新时间:2023-11-29 11:28:45 24 4
gpt4 key购买 nike

我是 NodeJs 新手,所以我一直坚持它的异步行为,特别是基于 KnexJS 模块对 MySQL 数据库的查询

这是带有查询的函数:

var getNotes = function(owner) {
if(owner !== undefined) {
knex.table('tblnotes').where('public',1).orWhere({ownerName : owner}).select('noteId').then(function(result) {
console.log(result);
return result;
});
}
else {
knex.table('tblnotes').where('public',1).select('noteId').then(function(result) {
console.log(result);
return result;
});
}
}

但是当我使用它时

var query = getNotes(user.username);
console.log("authenticated");
console.log(query);
console.log("--------------------------------------");
return res.render('authindex.ejs', {title : "Index", user : user,data : query});

我记录了我的结果:

authenticated
undefined
--------------------------------------
[ { noteId: 1 } ]

最佳答案

解决方案 1:使用回调

var getNotes = function(owner, callback) {
if(owner !== undefined) {
knex.table('tblnotes').where('public',1).orWhere({ownerName : owner}).select('noteId').then(function(result) {
console.log(result);
callback(result);
});
}
else {
knex.table('tblnotes').where('public',1).select('noteId').then(function(result) {
console.log(result);
callback(result);
});
}
}

并在路由中使用它,如下所示

getNotes(user.username, function(result){
console.log("authenticated");
console.log(result);
console.log("--------------------------------------");
return res.render('authindex.ejs', {title : "Index", user : user,data : result});
});

解决方案 2:使用 Promise

var getNotes = function(owner) {
if(owner !== undefined) {
return knex.table('tblnotes').where('public',1).orWhere({ownerName : owner}).select('noteId');
}
else {
return knex.table('tblnotes').where('public',1).select('noteId');
}
}

并在路由中使用它,如下所示:

getNotes(user.username).then(function(result){
console.log("authenticated");
console.log(result);
console.log("--------------------------------------");
return res.render('authindex.ejs', {title : "Index", user : user,data : result});
});

关于mysql - 使用 NodeJS 和 KnexJS 同步 MySQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37765495/

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