SQL Server не соединяется с приложением узла - PullRequest
1 голос
/ 17 апреля 2019

Я пытаюсь подключить приложение nodejs / express к SQL Server 2017 с помощью Sequelize ORM. Это мой первый раз использования SQL Server. Я не уверен, в чем проблема.

Ситуация: -

  1. Я создаю базу данных с помощью SQL Server Management Studio

  2. Я создаю другого пользователя под защитой> логин (например, для: - userName, passWord)

  3. И сделать этого пользователя владельцем этой базы данных

Вопросы:

  1. Когда я пытался подключиться к SQL Server с помощью Management Studio (используя проверку подлинности SQL Server), мое соединение устанавливается каждый раз.

  2. Но когда я попытался соединить ту же базу данных с моим приложением nodejs, я получил ошибки:

    Ошибка: - [SequelizeAccessDeniedError: сбой входа для пользователя ''] ##

Примечание : я уже попробовал mssql пакет npm, но не смог подключиться к SQL Server из nodejs

Вот мой код для файла index.js с использованием sequelize

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

1 Ответ

1 голос
/ 17 апреля 2019

Вы должны добавить пакет 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);

driver-перейти к odbc driver

затем на вкладке 'system dns'

Добавить

выберите собственный клиент SQL Server 11.0, а затем нажмите "Готово"

введите имя в качестве собственного клиента SQL Server 11.0, затем выберите сервер из затем следующий

следующий

следующий

следующий

отделка

тестовый источник данных

...