0

嗨,我想在節點js和sql server中的一個JS文件中使用兩個選擇。我無法弄清楚這個語法。我需要一個select來獲取表中的所有人,另一個select來計算該表中的總人數。有可能將這兩個選擇放在一個JS文件中。如果有的話可以有人幫助我的語法?節點JS多選

這裏是我試過的代碼,我正在錯誤 「着套頭後,他們被送到」

VAR SQL =要求(「MSSQL」); var dbConfig = {

server: "XXXXX", 
database: "XXXXX", 
user: "XXXXX", 
password: "XXXX", 
port: 1433 

}; exports.list = function(req,res){

sql.connect(dbConfig, function (err) { 

    if (err) console.log(err); 

    var request = new sql.Request(); 

    request.query('select * from PERSON', function (err, recordset) { 

     if (err) 
      console.log(err) 
     else 
      console.log(recordset) 
      res.render('personinfo_itwx', { data: recordset }); 

    }); 

     request.query('select count(*) from PERSON', function (err, recordset) { 

     if (err) 
      console.log(err) 
     else 
      console.log(recordset1) 
      res.render('personinfo_itwx', { data: recordset1 }); 

}); 









}); 

};;

+0

你不能簡單地做兩個異步請求嗎?例如,使用異步庫。 https://github.com/caolan/async –

+0

嗨Patryk, 你能幫我一下使用async的語法嗎?我是node.js的新手,所以永遠不要使用異步。 – Aditya

回答

0

@Aditya我不確定這是否是最好的方式,儘管我只是提出兩個不同的請求,以實現您的需求。正如我在我的評論中提到的,最簡單的方法是使用(例如)async庫。這裏是你要求的例子。

警告:我沒有在MySQL的文檔看

const async = require('async') 

// { 
    async.series([ 
    function(next) 
    { 
     new sql.Request() 
     .query('SELECT * from PERSON', next(err, resultList)) 
    }, 
    function(next) 
    { 
     new sql.Request() 
     .query('SELECT COUNT(*) from PERSON', next(err, count)) 
    } 
    ], (err, result) => 
    { 
    /* 
     err: String 
     - if any of the shown above return an error - whole chain will be canceled. 

     result: Array 
     - if both requests will be succesfull - you'll end up with an array of results 

     --- 

     Now you can render both results to your template at once 

    */ 
    }) 
// } 

當然,如果你想與錯誤或導致操作,一旦你讓他們 - 你總是可以推錯誤並導致新的功能,玩你的數據,然後返回回調。像這樣:

function(next) 
{ 
    new sql.Request() 
    .query('SELECT * from PERSON', (err, resultList) => 
    { 
     if (err) 
     { 
     return next(err, null)    
     } 

     /* 
     data manipulation 
     */ 

     return next(null, resultList) 
    }) 
},