mssql节点,get请求返回ReferenceError:未定义请求

时间:2018-01-29 20:34:11

标签: javascript sql-server node.js express

为我的db工作休息api遇到了这个问题

  

ReferenceError:未定义请求

现在我有一个可行的连接,但是如何使用mssql-node进行休息请求。最初我使用mySql db,但现在必须使它与mssql一起使用。在我花了一些时间之后我有2种错误类型 - 如果我在app.get中进行连接,这个或连接不起作用

现在设置的方式是

const express = require('express')
const sql = require('mssql');
const Connection = require('tedious').Connection;

var config = {
  userName: 'user' , 
  password: 'pass', 
  domain: "AD",
  server: serversIP,
  database: 'test',
  port: 2222,
  debug: true,
  driver: 'tedious',
  options: {
    database:"test",
    instanceName : "instance"
  } 
}
var connection = new Connection(config);
connection.on('connect', function(err) {
      if (err) {
        console.log(err);
      } else {
        console.log("server is connected to DB")
      }}
 );

app.get("/" , (req, res)=>{
    new sql.Request().query(`SELECT * FROM test `, (err, recordset) => {
      if (err) {
        console.log(err);
        return;
        }
      else {
        res.send(JSON.stringify(recordset));
        }
      });
    request.query();
    });

这个错误的原因是什么?

更新

经过几次小的错误迭代后,我得到一个错误,即没有指定connaction

使用像这样的新功能

app.get("/getUsers", (req, res)=>{
  sql.connect(config, function (err) {
    var request = new sql.Request();
    if (err) {
        console.log(err);
        return;
    }
  new sql.query(`SELECT * FROM dbo.tblDatabaseUserIDs_lookup `, (err, recordset) => {
    console.log("first error msg");
    if (err) {
      console.log(err);
      return;
      }
    else {
      console.log("second error msg");
      res.send(JSON.stringify(recordset));
      }
    });
    console.log("3rd error msg");
  //req.query();
  });
}); 

我的新错误消息是

  

var bufferLength = 64 + domain.length * 2 + username.length * 2 + lm   v2len + ntlmv2len + 8 + 8 + 8 + 4 + server_data.length + 4;

     

TypeError:无法读取未定义的属性“length”

认为它可能是由于第一个连接功能所以我更换了

  sql.connect(config, function (err) {
    var request = new sql.Request();
    if (err) {
        console.log(err);
        return;
    }

...connection.callProcedure(function (err) {
    new sql.query(`SELECT * .... 

并得到了这个

  

TypeError:request.validateParameters不是函数

但是

 connection.commitTransaction 

它给了我这个

  

(node:15956)UnhandledPromiseRejectionWarning:未处理的承诺   rejection(拒绝id:1):RequestError:未指定连接   对于那个请求。

我尝试遵循此解决方案的有趣部分Can't get Node mssql to work properly

1 个答案:

答案 0 :(得分:0)

这可能有帮助!! 尝试将连接作为Request()的参数传递。 var request = new sql.Request(connection)

a link