node.js - 无法从节点 js 中的异步发送响应
问题描述
我正在使用一个非常简单的功能。我正在查询的模型文件和我正在使用模型函数的控制器文件。controller.js 函数如下
let handlers = async (request, h) => {
let res = await users.checkUsers(request.payload);
console.log("response --- ");
console.log(res);
if (res > 0)
return h.response({
message: 'This user is already exist please try with some other creds.'
}).code(402)
return h.response({
message: 'Successfully created.'
}).code(200)
}
users.checkUser 函数如下
let checkUsers = async (params) => {
sql.connect(config.dbConfig, function(err){
if(err) console.log(err)
let sqlRequest = new sql.Request();
let query = "SELECT count(slNo) AS 'totalUser' FROM Users where email='" + params.email + "'";
sqlRequest.query(query, function(err, data){
if(err) return err;
sql.close();
console.log(data.recordsets[0][0].totalUser)
return data.recordsets[0][0].totalUser;
})
})
}
现在,如果我控制台 data.recordsets[0][0].totalUser 我能够看到结果。但是无法返回响应。当我尝试在用户控制器文件中访问它时,我能够看到“未定义”。不知道我错过了什么
解决方案
推荐阅读
- angular - 3D Highcharts z 轴格式
- rust - 是否有一个内置函数可以将数字转换为任何基数的字符串?
- asp.net-core - ASP.NET Core 标识扩展不保存
- .htaccess - 仅将 oldsite.com 重定向到 newsite.com,但不包括 oldsite.com/wp-login.php
- c# - C# 接口不允许成员类满足要求
- javascript - 通过 API 添加 Stripe 订阅
- javascript - 想要从我单击它的按钮获取先前的输入
- sql-server - T-SQL 从数字中获取一周的第一天
- c++ - 使用鼠标事件计算相机的位置和旋转
- excel - 尝试使用 FileSystemObject 打开 csv 时出错:代码运行但什么也不做