【问题标题】:Sequelize connection and logging issues续集连接和日志记录问题
【发布时间】:2017-05-07 05:22:18
【问题描述】:

我正在尝试使用 Sequelize 连接 SQL Server 2012 数据库。当我的连接字符串明显错误时,我看到了 ECONN REFUSED 消息和超时。现在,尽管登录成功和失败,但我没有得到任何响应,根据这段代码:

import * as Sequelize from 'sequelize';

-- connection string redacted
let seqConn = new Sequelize("mssql://**;Initial Catalog=**;Persist Security Info=True;Integrated Security=SSPI; User ID=**; Password=**")

seqConn
    .authenticate()
    .then(function(err) {
        console.log('Connection has been established successfully.');
    })
    .catch(function (err) {
        console.log('Unable to connect to the database:', err);
    });

我以前使用的语法:

let seqConn = new Sequelize("DB", "Username", "Password", 
    {
        dialect: 'mssql',
        dialectOptions: {
            instanceName: 'dev'
        },
        host: '**'
    };

但我找不到集成安全性或其他花哨的 SQL Server 设置。

无论如何,我当前的连接字符串没有出错。而且,这并不是说建立了连接。

我尝试将我的 seqConn 传递给模型以使用它来检索模型:

getModel(seqConn): void {
    console.log("Getting");
    var model = seqConn.define("dbo.Model", {
        modelID: Sequelize.INTEGER,
        modelNo: Sequelize.INTEGER,
        modelName: Sequelize.STRING(50),
        modelAge: Sequelize.DATE
    });

    seqConn.sync().then(function() {
        model.findOne()
        .then( function (modelRes){
            console.log("got a result!?");
            console.log(modelRes.get("modelName"));
        })
        .catch( function (error){
            console.log("it didn't work :( ");
        });

    });
    console.log('after getter');
    return;
}

我不确定这是使用 sequelize 的正确方法,我仍在建立我的项目结构,但现在我希望看到“得到结果”或错误,但没有任何记录来自then()catch()。之前/之后的 getter 日志记录正常。

我认为连接需要很长时间,但我的 IT 说他在我们的 SQL 日志中看到了我的成功连接,我认为之前我在大约 15,000 毫秒内出现超时。

【问题讨论】:

    标签: node.js typescript sequelize.js tedious


    【解决方案1】:

    通过包含另一个 NPM 模块解决了这个问题:`sequelize-msnodesqlv8'

    然后连接到 Sequelize 的代码如下所示:

    var Sequelize = require('sequelize');
    
    var seqConn = new Sequelize({
        dialect: 'mssql',
        dialectModulePath: 'sequelize-msnodesqlv8',
        dialectOptions: {
            connectionString: 'Driver={SQL Server Native Client 11.0};[REDACTED]'
        }
    });
    
    seqConn
        .authenticate()
        .then(function(err) {
            console.log('Connection has been established successfully.');
        })
        .catch(function (err) {
            console.log('Unable to connect to the database:', err);
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-15
      • 1970-01-01
      • 2011-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-23
      相关资源
      最近更新 更多