[英]How to configure sequelize with mssql?
我想使用 sequelize 连接 Microsoft Sql。 我找到了这个链接http://docs.sequelizejs.com/manual/installation/getting-started.html
我用 nodejs 编写了下面的代码:
require('dotenv').config();
var express = require('express');
var app = express();
const Sequelize = require('sequelize');
const sequelize = new Sequelize(process.env.DB_NAME,null,null, {
dialect: 'mssql',
host: process.env.DB_HOST + "\\" + process.env.DB_SERVER,
operatorsAliases: false,
pool: {
max: 5,
min: 0,
acquire: 30000,
idle: 10000
}
});
sequelize.authenticate().then((err) => {
console.log('Connection successful', err);
})
.catch((err) => {
console.log('Unable to connect to database', err);
});
app.listen(process.env.PORT);
console.log('Starting Server on Port ', process.env.PORT);
但是当我运行代码时出现错误:
sequelize deprecated String based operators are now deprecated. Please use
Symbol based operators for better security, read more at
http://docs.sequelizejs.com/manual/tutorial/querying.html#operators
node_modules\sequelize\lib\sequelize.js:242:13
Unable to connect to database { SequelizeHostNotFoundError: Failed to
connect to USER-PC\SQLEXPRESS:1433-getaddrinfo ENOTFOUND USER-PC\SQLEXPRESS
at Connection.connection.on.err (C:\Users\User\Desktop\loginApp\node_modules
\sequelize\lib\dialects\mssql\connection-manager.js:98:22)
我做错了什么,我无法连接到数据库?
您需要为数据库提供mysql数据库名称、用户名和密码
var sequelize= new Sequelize('your Database name', 'username', 'password', {
host: 'localhost',
dialect: 'mssql', //postgres'|'sqlite'|''|'mysql',
pool: {
max: 5,
min: 0,
acquire: 30000,
idle: 10000
},
// SQLite only
//storage: 'path/to/database.sqlite'
});
// You can do it with a string.
const Sequelize = require('sequelize');
const sequelize = new Sequelize("mssql://username:password@mydatabase.database.windows.net:1433",
{ pool: {
"max": 10,
"min": 0,
"idle": 25000,
"acquire": 25000,
"requestTimeout": 300000
},
dialectOptions: {
options: { encrypt: true }
}
});
// This uses the Raw Query to query for all dbs for example
sequelize.query(`
SELECT name, database_id, create_date
FROM sys.databases
GO `,
{ type: sequelize.QueryTypes.SELECT})
.then(async dbs => {
console.log("dbs", dbs);
return dbs;
});```
Example above: mssql db hosted on Azure.
Example below: mssql db on localhost.
You can do it with key value pairs or a string.
`
var Sequelize = require("sequelize");
var sequelize = new Sequelize("sequelize_db_name", user, password, {
host: "localhost",
port: 1433,
dialect: "mssql",
pool: {
max: 5,
min: 0,
idle: 10000
},
dialectOptions: {
options: { encrypt: true }
}
});`
ES6 格式
import { Sequelize } from "sequelize";
import dotenv from 'dotenv';
dotenv.config();
const db = new Sequelize(
process.env.DB_NAME,
process.env.DB_USER,
process.env.DB_PASS,
{
host: process.env.DB_HOST,
dialect: "mssql",
}
);
export default db;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.