簡體   English   中英

Node.js MSSQL返回一個值

[英]Node.js MSSQL Return a Value

我有這個代碼

var sql = require('mssql');

....

function dbConnect(){       
sql.connect(config).then(function() {       
    return true;
}).catch(function(err) {
    return false;
}); 

我希望函數dbConnect返回一個值。 但是當我使用console.log(dbConnect());調用它時console.log(dbConnect()); 我有

未定義

有幫助嗎?

dbConnect()函數沒有自身的return語句,因此不返回值,這是預期的。

假設您想要回調給調用者是否連接成功,您必須記住連接到數據庫的過程是異步的,因此必須使用回調(或者我承諾)來完成。

如果您將功能更改為以下內容:

function dbConnect(cb){       
    sql.connect(config).then(function() {       
        cb && cb(true);
    }).catch(function(err) {
        cb && cb(true);
}); 

然后你可以像這樣調用它:

dbConnect(function(result) {
    if (result) console.log('yay! connected');
    else console.log('ohnoz! connection failed!');
});

作為替代方案,您可以使用promise結構,但我相信Node編程風格更傾向於回調函數。 但是,無法使dbConnect函數直接返回連接的狀態,因為在函數完成時該值尚不可用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM