将SQL Server与NodeJS应用程序连接

时间:2018-04-19 12:04:04

标签: sql-server node.js

我收到错误

  

无法在DESKTOP-N5 *** R / ONEJOHI上查找实例

我尝试使用NodeJS访问我的SQL Server实例。这是我的源代码到目前为止,我不明白我哪里出错了。

app.js文件需要mssql模块并使用它来使用配置对象进行连接。

var express = require("express");
var bodyParser = require("body-parser");
var path = require("path");
var config = require('./bin/config');
const sql = require("mssql");

var app = express();

app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
app.use(express.static(path.join(__dirname, 'public')));

sql.connect(config).then(() => {
    return sql.query`select * from [dbo].[DimProduct]`;
}).then(res => {
    console.log(res);
}).catch(err => {
    console.log(err);
});

app.use("/", require("./router/index"));

app.listen(1000, () => {
    console.log("Server listening on port 1000");
});

config.js文件中的配置如下。

const config = {
    user: 'DBA',
    password: 'Password01',
    server: "DESKTOP-N50AKSR/ONEJOHI",
    database: "FKLMasterData",
    port: 50862,
    options: {
        instanceName: "ONEJOHI"
    }
}

module.exports = config;

我的服务器实例正在运行,这是PORT,我截了它的截图。

The port it's currently running on maybe?

以下是属性窗口中显示的SQL Server属性。

enter image description here

我不明白为什么它不连接。最后一张照片显示了每次我尝试运行应用程序时NodeJS显示的错误消息。

enter image description here

尝试连接服务器时,我哪里可能出错?

1 个答案:

答案 0 :(得分:0)

我已经与sql server建立了连接。我创建了以下模块并为我工作。

var sql = require('mssql');
 var _ = require('underscore');


module.exports = function(exp){

var config = {
   server : process.env.DB_HOST + "\\" + process.env.DB_SERVER,
   database: process.env.DB_NAME,
   user: process.env.DB_USER,
   password: process.env.DB_PASSWORD,
   driver: "msnodesqlv8",
   options: {
      trustedConnection: false,
      encrypt: true // Use this if you're on Windows Azure
  },
  pool: {
    max: 10,
    min: 0,
    idleTimeoutMillis: 30000
  },
 port: process.env.PORT
};

 var sqlConn = new sql.connect(config);
 exp.sqlConn=sqlConn; 

};

我相信你必须使用一些驱动程序作为" msnodesqlv8"。您可以使用npm install msnodesqlv8 --save。

安装此驱动程序