javascript - 在查询结果后传递参数(ExpressJS)
问题描述
我正在使用 expressjs 和 postgresql
如何在expressJS外部函数中查询结果后获取参数
这是我的代码
const checkMail = function(regEmail){
pool.query("SELECT * FROM tb_users where email=$1", [regEmail] ,(err, result) =>{
console.log('inside : '+result.rowCount);
return result.rowCount;
});
}
var cekMailres = checkMail(email);
console.log('outside : '+cekMailres);
我需要参数result.rowCount
谢谢你的帮助
我的最终解决方案
var email = req.body.email;
var cekMail = new Promise(function(resolve, reject) {
pool.query("SELECT * FROM tb_users where email=$1", [email] , function(error,result) {
console.log("Row count: %d",result.rows.length); // n
if(error){
console.log(error)
}
resolve(result.rows.length);
});
});
cekMail.then(function (resolve, reject) {
console.log(resolve);
res.render('login/register',{
layout: 'login/layout',
mailStatus: resolve,
});
});
解决方案
您没有从函数返回值(您在查询回调中)。我没有对此进行测试,但它应该像这样工作:
const checkMail = async function(regEmail, fn){
var rowCount = 0;
await pool.query("SELECT * FROM tb_users where email=$1", [regEmail] ,(err, result) =>{
console.log('inside : '+result.rowCount);
fn(result.rowCount);
return result.rowCount;
});
}
var cekMailres = checkMail(email, function(rowCount){
console.log('Outside: ' + rowCount);
}).then(function () {
//do nothing
}).catch(function () {
//do nothing
});
推荐阅读
- powershell - PowerShell "$g = $json | ConvertFrom-Json | Group State" 结果不同于 "$g = $json | ConvertFrom-Json ; $g = $g | Group State ;"
- javascript - 如何在 React 中从 Array 中获取一定数量的元素
- typescript - tsc 命令未编译为 outDir
- python - 如何在python中为Sql语句提供动态输入
- java - 如何强制 Pact 生产者验证特定的合约版本?
- visual-studio-code - 如何永久链接到 Visual Studio 代码中的一行
- javascript - 如何在 SparkAR Studio 98 中将跟踪平面上的对象朝向相机?
- cookies - ASP Core Cookie Auth,添加声明提前过期
- java - 错误:无法在 Windows 10 上创建 Flink 的 Java 虚拟机安装
- python - Python selenium “while true:” 脚本无法执行 driver.get(“URL”)