sequelize-无法与MSSQL建立连接

时间:2018-07-19 14:05:14

标签: node.js sequelize.js

我正在尝试与MS SQL建立连接,但是由于某些原因,sequelize无法正确传递主机名,而不是传递“ localhost \ SQLEXPRESS”,而是传递了“ localhostSQLEXPRESS”。知道在哪里修复它吗?

'use strict';
const _ = require('lodash');
var Sequelize = require('sequelize');
var sequelize = new Sequelize('mydb', 'db_user', 'db_user', {
    host: 'localhost\SQLEXPRESS',
    dialect: 'mssql',
    pool: {
        max: 5,
        min: 0,
        idle: 10000
    },
});
// define model 
var batchDetails = sequelize.define('batchDetails', {
    id: {
        type: Sequelize.STRING,
        autoIncrement: true,
        field:'id',
        primaryKey: true
    },
    batch_no: {
        type: Sequelize.STRING,
        field:'batch_no',
    },
    date: {
        type: Sequelize.DATE,
        field:'date',
    }
})

batchDetails.sync({force: true}).then(function () {
    // Table created
    return User.batchDetails({
      id: 1,
      batch_no: 'CASFR342'
    });
  });

错误日志:-

  

sequelize不推荐使用现在不推荐使用基于字符串的运算符。请   使用基于符号的运算符以获得更好的安全性,请参见   http://docs.sequelizejs.com/manual/tutorial/querying.html#operators   node_modules \ sequelize \ lib \ sequelize.js:242:13乏味的   options.encrypt的默认值将从false更改为   true。如果您想保留当前版本,请明确传递false   行为。   node_modules \ sequelize \ lib \ dialects \ mssql \ connection-manager.js:69:26   未处理的拒绝SequelizeHostNotFoundError:无法连接到   本地主机SQLEXPRESS:1433-getaddrinfo ENOTFOUND本地主机SQLEXPRESS       在Connection.connection.on.err(C:\ Node JS Workspace \ db \ node_modules \ DB \ node_modules \ sequelize \ lib \ dialects \ mssql \ connection-manager.js:97:22)       在emitOne上(events.js:116:13)       在Connection.emit(events.js:211:7)       在Connection.socketError(C:\ Node JS Workspace \ db \ node_modules \ DB \ node_modules \ tedious \ lib \ connection.js:1016:14)       在C:\ Node JS Workspace \ db \ node_modules \ DB \ node_modules \ tedious \ lib \ connection.js:861:25       在GetAddrInfoReqWrap.callback(C:\ Node JS Workspace \ db \ node_modules \ DB \ node_modules \ tedious \ lib \ connector.js:69:18)       在GetAddrInfoReqWrap.onlookupall [按完成](dns.js:104:17)

2 个答案:

答案 0 :(得分:0)

更新您的主机路径。

  • 之前:localhost\SQLEXPRESS
  • 之后:localhost\\SQLEXPRESS

答案 1 :(得分:0)

此配置在我的本地sql server express上有效:

var sequelize = new Sequelize('db', 'db_user', 'db_pwd', {
    host: 'localhost',
    dialect: 'mssql',
    dialectOptions: {
     options: { instanceName: "sqlexpress" }
   }
});

诀窍在dialectOptions.instanceName属性中。