节点JS多选

问题描述:

嗨,我想在节点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

@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) 
    }) 
},