这里有段 nodeJS 代码,是数据库访问的方法,在编写 API 的时候需要访问数据库,但是如果异步访问数据库,在 API 中就返回不了结果。
var sqlserver = require('mssql');
var msdb = {};
var dbConfig = {
server: '127.0.0.1',
port: 1433,
user: "sa",
password: "sasa",
database: "test"
};
var db = function(strsql) {
sqlserver.connect(dbConfig).then(function() {
var req = new sqlserver.Request().query(strsql).then(function(recordset) {
console.log(recordset);
}).
catch(function(err) {
console.log(err);
});
}).
catch(function(err) {
console.log(err);
});
};
module.exports = db;
在V2上讨教了,基本上采用Promise async/await 概念相关的写法就好,有位热心的朋友给出了完整的代码:
var sqlserver = require('mssql');
var msdb = {};
var dbConfig = {
server: '127.0.0.1',
port: 1433,
user: "sa",
password: "sasa",
database: "test"
};
var db = function(strsql) {
return new Promise(function(resolve, reject){
sqlserver.connect(dbConfig).then(function() {
var req = new sqlserver.Request().query(strsql).then(function(recordset) {
resolve(recordset)
}).
catch(function(err) {
reject(err)
});
}).
catch(function(err) {
reject(err)
});
})
};
module.exports = db;
// 使用方法:
async function getData() {
const result = await db('select * from tableA');
}