簡體   English   中英

SQL Server 未與節點應用程序連接

[英]SQL Server is not connecting with node app

我正在嘗試使用 Sequelize ORM 將我的 nodejs/express 應用程序連接到 SQL Server 2017。 這是我第一次使用 SQL Server。 我不確定問題出在哪里。

情況:-

  1. 我使用 SQL Server Management Studio 創建了一個數據庫

  2. 我在安全 > 登錄下創建了另一個用戶(例如:-用戶名、密碼)

  3. 並使該用戶成為該數據庫的所有者

問題:

  1. 當我嘗試使用 Management Studio(使用 SQL Server 身份驗證)連接到 SQL Server 時,每次都會建立連接。

  2. 但是當我嘗試將同一個數據庫與我的 nodejs 應用程序連接時,出現錯誤:

    錯誤:- [SequelizeAccessDeniedError:用戶''的登錄失敗]##

注意:我已經嘗試過mssql npm 包,但無法從 nodejs 連接到 SQL Server

這是我使用 sequelize 編寫 index.js 文件的代碼

const express = require('express');

const app = express();

const Sequelize = require('sequelize');
const sequelize = new Sequelize("demo", "demoUser", "dPass", {
    host: "localhost",
    dialect: "mssql",
    pool: {
        max:  1,
        min: 0,
        idle: 5000,
        acquire: 5000
    },
    dialectOptions: {
        encrypt: true
    }
});

sequelize
    .authenticate()
    .then(() => {
        console.log("connection established");
    })
    .catch(err => {
        if (err) {
            console.log(`unable to connect database Error ${err}`);
        }
    });


app.listen(3000, (err) => {
    if (err) throw err;
    console.log("Server connect to port 3000");
})
   

你必須添加 npm 包sequelize-msnodesqlv8

 const Sequelize = require('sequelize'); let connectionString = { dialect: 'mssql', dialectModulePath: 'msnodesqlv8/lib/sequelize', dialectOptions: { driver: "SQL Server Native Client 11.0", instanceName: 'MSSQLSERVER',//in my condition //check it in server configuration manager which instance is running trustedConnection: true }, host: 'localhost', database: 'dbname' } const sequelize = new Sequelize(connectionString);

驅動程序-轉到 odbc 驅動程序

然后在“系統 dns”選項卡中

添加

選擇 SQL Server Native Client 11.0 然后按完成

將名稱設為 SQL Server Native Client 11.0 然后從下拉列表中選擇服務器然后下一步

下一個

下一個

下一個

結束

測試數據源

暫無
暫無

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

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