nodeJS 中数据访问异步改同步的写法

这里有段 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');
    
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容