使用Sequelize

时间:2017-12-20 01:18:54

标签: sql sql-server node.js sequelize.js sequelize-cli

我最近设置了一个本地SQL Server Db来开发我的节点应用程序。我尝试从节点应用程序连接到它时遇到问题。

我能够使用以下命令连接sqlcmd:

sqlcmd -S <hostname>\<instanceName>

我正在使用Sequelize cli尝试在我的开发数据库上运行迁移。

我的config.json如下:

{
  "development": {
    "username": "<my windows domain username>",
    "password": "<my windows domain password>",
    "database": "development",
    "host": "127.0.0.1",
    "dialect": "mssql",
    "dialectOptions": {
      "instanceName": "LocalServer",
      "domain": "<my company's domain>"
    }
  }
} 

我在设置时将名称从EXPRESS更改为LOCALSERVER(不要问我为什么)。我还将其设置为使用Windows身份验证和SQL SERVER登录进行登录。我最近尝试过的各种配置都出现了各种各样的错误:

ERROR: Failed to connect to 127.0.0.1:undefined in 15000ms

我想我可能无法理解SQL Server I应该传递给Sequelize的值。在哪里可以找到日志并查看正在使用的实际连接字符串?

5 个答案:

答案 0 :(得分:2)

嗨,在我的情况下,按照以下步骤对我来说效果很好:

1 安装繁琐 -> npm 安装繁琐

2 然后在 DB 实用程序 node.js 文件中 ->

const Sequelize = require('sequelize').Sequelize;

sequelize = new Sequelize('DB_NAME', 'username', 'password', { 主机:'本地主机', 方言:'mssql', 方言选项:{ 实例名称:'MSSQLSERVER' } });

module.exports = sequelize;

答案 1 :(得分:0)

尝试将"port": "1433",添加到您的配置中。输出中未定义的是端口所在的位置,我在配置中没有看到它。

我认为MsSql的默认端口是1443。

如果这对您不起作用,请使用以下内容创建一个新脚本:

const Sequelize = require('sequelize')
const sequelize = new Sequelize({
    dialect: 'mssql',
    database: 'your-database-name',
    username: 'your-username',
    host: 'localhost',
    port: '1433',
    password: 'your-password',
    logging: true,
})

Sequelize在运行时会给你更多的调试信息。

答案 2 :(得分:0)

我最终不得不使用sequelize-msnodesqlv8,因为我使用sqlserver,这是使用Windows进行身份验证的唯一方法。我的最终连接配置对象如下所示:

 {
 "development": {
    "dialect": "mssql",
    "dialectModulePath": "sequelize-msnodesqlv8",
    "dialectOptions": {
        "driver": "SQL Server Native Client 11.0",
        "trustedConnection": "true"
    },
    "username": "<my windows domain username>",
    "password": "<my windows domain password>",
    "database": "development",
    "host": "127.0.0.1",
    "port": 1433,
    "logging": "true"
  }
} 

答案 3 :(得分:0)

我也遇到了这个问题,发现我的SQL Server Browser服务已停止。从SQL Server配置管理器启动服务后,便可以连接。

它记录在GitHub项目的要求中

  

请确保已启用MS SQL Server TCP / IP连接,并且   服务器浏览已启动并正在运行。

https://github.com/ErenYatkin/sequelizeJS-mssql

答案 4 :(得分:0)

如果有人还在为此苦苦挣扎,就我而言,我通过将本地 SQL Server Express 配置为可通过网络访问来解决此问题

(查看链接了解如何https://www.c-sharpcorner.com/article/configuring-sql-server-2016-express-on-lan-for-c-sharp-connection-string/

然后配置 sequelize with

主机:'本地主机', 端口:'1433',