首页 > 解决方案 > Await 是唯一的异步函数:API NODE

问题描述

我无法使用下面的代码片段。我尝试调用异步函数,但收到如下所示的错误。我正在尝试连接到 Microsoft SQL Server。请查看代码,并请告诉我这些代码片段是什么。

**SyntaxError: await is only valid in async function**


var express = require('express');
var router = express.Router();
var sql = require('mssql');

async function connectDB(){

 const pool = new sql.ConnectionPool(global.config.sqlConfig);
     try {
         await pool.connect();
         console.log('Connected to DATABASE');
         return pool;
     }
     catch(err){
         console.log('conn failure');
         return err;
     }
};

async function executeQuery(req, res){    
 const DB = await connectDB(); 
 try{
     var result = await DB.request()
     .query(req).then(function () {
        console.log("QUERY PASSED");
        console.log(result.recordset);
        return result.recordset;
     });

 }
 catch(err){
     console.log("ERROR QUERYing DATABASE");
     return err;
 }
 finally{
      DB.close();
 }

 };

router.get('/login', function (req, res) {   
   var strquery = "select fUserPwd from tblUser where fUserID ='ADMIN'";
    console.log(strquery);
   const result = await executeQuery(strquery, res); 
   res.send(result);     

});

module.exports = router; 

我希望在打开链接时显示记录集。有没有办法解决这个问题?

标签: node.jssql-serverrestapi

解决方案


问题出在这条路线上。

   router.get('/login',async function (req, res) {   
       var strquery = "select fUserPwd from tblUser where fUserID ='ADMIN'";
        console.log(strquery);
       const result = await executeQuery(strquery, res); 
       res.send(result);     

    });

推荐阅读