首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL Server与Node js的连接

SQL Server与Node js的连接
EN

Stack Overflow用户
提问于 2020-02-13 18:58:34
回答 2查看 1.5K关注 0票数 1
代码语言:javascript
复制
var express = require('express');
var app = express();

app.get('/', function (req, res) {

    var sql = require("mssql");

    // config for your database
    var config = {
        user: 'sa',
        password: '1234',
        server: 'AHMAD\SQLEXPRESS', 
        database: 'dbms_lab4',
        port:1433,
        encrypt:false
    };

    // connect to your database
    sql.connect(config, function (err) {

        if (err) console.log(err);

        // create Request object
        var request = new sql.Request();

        // query to the database and get the records
        request.query('select * from Products', function (err, recordset) {

            if (err) console.log(err)

            // send records as a response
            res.send(recordset);

        });
    });
});

var server = app.listen(5000, function () {
    console.log('Server is running..');
});

我无法连接到SQL Server。当我运行上面的程序并访问localhost:5000时,浏览器上除了vscode终端上的一条消息外,什么也没有出现:

代码语言:javascript
复制
"The default value for `config.options.enableArithAbort` will change from `false` to `true` in the next major version of `tedious`. Set the value to `true` or `false` explicitly to silence this message. node_modules\mssql\lib\tedious\connection-pool.js:61:23
ConnectionError: Connection is closed.
    at Request._query (D:\JS\Sql_Connection\node_modules\mssql\lib\base\request.js:447:37)
    at Request._query (D:\JS\Sql_Connection\node_modules\mssql\lib\tedious\request.js:346:11)
    at Request.query (D:\JS\Sql_Connection\node_modules\mssql\lib\base\request.js:383:12)
    at Immediate.<anonymous> (D:\JS\Sql_Connection\server.js:27:17)
    at processImmediate (internal/timers.js:458:21) {
  code: 'ECONNCLOSED',
  name: 'ConnectionError'
}
ConnectionError: Failed to connect to AHMADSQLEXPRESS:1433 - getaddrinfo ENOTFOUND AHMADSQLEXPRESS
    at Connection.<anonymous> (D:\JS\Sql_Connection\node_modules\mssql\lib\tedious\connection-pool.js:68:17)
    at Object.onceWrapper (events.js:428:26)
    at Connection.emit (events.js:321:20)
    at Connection.socketError (D:\JS\Sql_Connection\node_modules\mssql\node_modules\tedious\lib\connection.js:1290:12)
    at D:\JS\Sql_Connection\node_modules\mssql\node_modules\tedious\lib\connection.js:1116:21
    at GetAddrInfoReqWrap.callback (D:\JS\Sql_Connection\node_modules\mssql\node_modules\tedious\lib\connector.js:158:16)
    at GetAddrInfoReqWrap.onlookupall [as oncomplete] (dns.js:76:17) {
  code: 'ESOCKET',
  originalError: ConnectionError: Failed to connect to AHMADSQLEXPRESS:1433 - getaddrinfo ENOTFOUND AHMADSQLEXPRESS
      at ConnectionError (D:\JS\Sql_Connection\node_modules\mssql\node_modules\tedious\lib\errors.js:13:12)
      at Connection.socketError (D:\JS\Sql_Connection\node_modules\mssql\node_modules\tedious\lib\connection.js:1290:56)
      at D:\JS\Sql_Connection\node_modules\mssql\node_modules\tedious\lib\connection.js:1116:21
      at GetAddrInfoReqWrap.callback (D:\JS\Sql_Connection\node_modules\mssql\node_modules\tedious\lib\connector.js:158:16)
      at GetAddrInfoReqWrap.onlookupall [as oncomplete] (dns.js:76:17) {
    message: 'Failed to connect to AHMADSQLEXPRESS:1433 - getaddrinfo ENOTFOUND AHMADSQLEXPRESS',
    code: 'ESOCKET'
  },
  name: 'ConnectionError'
}
ConnectionError: Connection is closed.
    at Request._query (D:\JS\Sql_Connection\node_modules\mssql\lib\base\request.js:447:37)
    at Request._query (D:\JS\Sql_Connection\node_modules\mssql\lib\tedious\request.js:346:11)
    at Request.query (D:\JS\Sql_Connection\node_modules\mssql\lib\base\request.js:383:12)
    at D:\JS\Sql_Connection\server.js:27:17
    at D:\JS\Sql_Connection\node_modules\mssql\lib\base\connection-pool.js:241:7
    at processTicksAndRejections (internal/process/task_queues.js:97:5) {
  code: 'ECONNCLOSED',
  name: 'ConnectionError'
}"
EN

回答 2

Stack Overflow用户

发布于 2020-02-13 19:14:01

对于SQL连接:“不支持hostname\instancename的Microsoft样式字符串。”

例如发自:https://www.w3schools.com/nodejs/nodejs_mysql.asp

代码语言:javascript
复制
var mysql = require('mysql');

var con = mysql.createConnection({
  host: "localhost",
  user: "yourusername",
  password: "yourpassword"
});

con.connect(function(err) {
  if (err) throw err;
  console.log("Connected!");
});

您需要相应地更新您的配置。

票数 0
EN

Stack Overflow用户

发布于 2020-06-13 00:45:48

尝试转义服务器名称中的\

变化

代码语言:javascript
复制
server: 'AHMAD\SQLEXPRESS'

代码语言:javascript
复制
server: 'AHMAD\\SQLEXPRESS', 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60206205

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档