簡體   English   中英

SQL Server 與 Node js 的連接

[英]SQL Server connection with Node js

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的終端上顯示一條消息:

"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'
}"

對於 SQL 連接:“不支持主機名\\實例名的 Microsoft 樣式字符串。”

EG 來自: https : //www.w3schools.com/nodejs/nodejs_mysql.asp

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!");
});

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

嘗試轉義服務器名稱中的 \\

改變

server: 'AHMAD\SQLEXPRESS'

server: 'AHMAD\\SQLEXPRESS', 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM