【发布时间】:2017-11-25 18:25:42
【问题描述】:
let RetrieveFromDb=(queryStr) =>
{
let sql=require('mssql');
let config={
server:'127.0.0.1',
database:'TestDB',
user:'user',
password:'user',
};
let dbConn=new sql.Connection(config);
return dbConn.connect().then(function (){
let request=new sql.Request(dbConn);
return request.query(queryStr)
.then(function(recordset)
{
return recordset;
dbConn.close();
}).catch(function (err) {
console.log(err);
dbConn.close();
});
}).catch(function (err) {
console.log(err);
});
};
RetrieveFromDb("Select FirstName from User where UserID='1'").then(function(x){console.log(x[0].FirstName);});//console is displying the FirstName value from DB
RetrieveFromDb("Select FirstName from User where UserID='1'").then(res=>{console.log(res[0].FirstName)});//console is displying the FirstName value from DB
以上两个函数调用返回值到控制台,但我想将 RetrieveFromDb() 的结果保存到一个变量中,以便与其他数据进行比较以进行验证。
假设如果 var actualFirstname=RetrieveFromDb(myquery); 那么我将比较 if(actualFirstname===expectedFirstName) 与否。
【问题讨论】:
-
return: "当在函数中调用return语句时,该函数的执行将停止。" -
感谢您的评论,您能否建议我如何改进代码,避免退货,以实现从数据库获取数据的目标。我添加了返回,因为没有添加返回它返回“未定义”。请帮忙
-
您必须将
dbConn.close();移动到return recordset;之前/上方,否则您不会关闭数据库连接
标签: javascript node.js promise node-mssql