2017-08-27 18 views
0

SQL Serverインストーラを完了したら、指定された接続文字列はServer=localhost\MSSQLSERVER01;Database=master;Trusted_Connection=True;です。これは奇妙な形式のようですが、接続文字列を使用してデータベースに接続しようとするとsequelizeでローカルのSQL Serverデータベースに接続

var sequelize = new Sequelize(process.env.DB_STRING); 

私はエラーを取得する:

this articleに基づいて

TypeError: Cannot read property 'replace' of null

at new Sequelize (C:\Users\George\Source\Repos\TestProj\node_modules\sequelize\lib\sequelize.js:132:40) at Object. (C:\Users\George\Source\Repos\TestProj\models\index.js:13:21) at Module._compile (module.js:570:32)

答えて

0

あなたがsequelize-msnodesqlv8をインストールする必要があります。

var sequelize = new Sequelize({ 
    dialect: 'mssql', 
    dialectModulePath: 'sequelize-msnodesqlv8', 
    dialectOptions: { 
    instanceName: 'MSSQLSERVER01', 
    trustedConnection: true 
    }, 
    host: 'localhost', 
    database: 'master' 
}); 

または多分よりよい:

var sequelize = new Sequelize({ 
    dialect: 'mssql', 
    dialectModulePath: 'sequelize-msnodesqlv8', 
    dialectOptions: { 
    connectionString: 'Server=localhost\MSSQLSERVER01;Database=master; Trusted_Connection=yes;' 
    }, 
}); 

しかし、あなたはMasterとしてデフォルトのデータベースを残すべきではありません。代わりにデータベース名を使用してください。

マークこの:

There are many node mssql clients and sequelize defaults to using tedious, but being pure javascript,tedious lacks support for integrated security. msnodesqlv8 is a client that interfaces with a native odbc library. This allows integrated security to be used. It does require additional binaries to deploy, but fortunately, msnodesqlv8 is distributed with binaries for the most common architectures

あなたが統合セキュリティを使用しているので、あなたはその問題に対処する必要があります。

this questionも参照してください。

+0

ありがとうございました! [Microsoft] [SQL Serverネイティブクライアント11.0] 2番目のスニペットで接続文字列属性 'Trusted_Connection''に無効な値が指定されましたか? –

+0

@GeorgeEdwards統合セキュリティを試す= SSPI; Trusted_Connection = True;の代わりに。またはTrusted_Connection = yes; –

+0

今、 'Unhandled rejection 'を取得しました。SequelizeConnectionError:[Microsoft] [SQL Serverネイティブクライアント11.0] Named Pipesプロバイダ:SQL Serverへの接続を開けませんでした。[53]' –

関連する問題