无法连接到SQL Server 2000 Sequelize



我使用Sequelize连接到MS SQL数据库,使用以下代码可以正常连接,不会出现任何问题:

const sequelize = new Sequelize(
database,
user,
password,
{
host: host,
dialect: "mssql",
port: port,
dialectOptions: {
options: {
encrypt: false,
},
},
}
);
sequelize
.authenticate()
.then((err) => {
console.log(err)
res.send("Connected");
})

这对于任何新数据库都非常有效(例如:版本14(然而,当我尝试连接到版本为8.00.2055的SQL数据库时,我会收到以下错误:

Error: Unknown type: 0
at Function.parseTokens (C:snapshotBackendnode_modulestediouslibtokenstream-parser.js:145:17)
at parseTokens.next (<anonymus>)
at next (internal/streams/from.js:31:46)
at next (internal/streams/from.js:35:9)
at process._tickCallback (internal/process/next_tick.js:68:7)
Emitted 'error' event at:
at emitErrorNT (internal/streams/destroy.js:91:8)
at emitErrorAndCloseNT (internal/streams/destroy.js:59:3)
at process._tickCallback (internal/process/next_tick.js:63:19)

我在Tedious github上找到了一个修复程序,它应该通过将Tedious版本指定为7.1:来解决这个问题

options: {
tdsVersion: '7_1'
}

但这个解决方案对我不起作用。任何帮助都将不胜感激。

你应该试试这个:

const sequelize = new Sequelize("MET", "met", "met", {
host: "10.7.12.1",
dialect: "mssql",
port: 1433,
pool: {
max: 5,
min: 0,
idle: 10000,
},
dialectOptions: {
options: {
encrypt: false,
packetSize: 16368,
tdsVersion: "7_1",
trustServerCertificate: true,
},
},
});
module.exports = sequelize;

此外,这些是我对package.json文件的依赖,请注意顺序化和乏味的版本:

"dependencies": {
"bcryptjs": "^2.4.3",
"body-parser": "^1.18.3",
"express": "^4.16.3",
"express-validator": "^5.3.0",
"jsonwebtoken": "^8.3.0",
"mongoose": "^5.3.2",
"multer": "^1.4.0",
"mysql2": "^2.3.3",
"pg": "^8.7.3",
"pg-hstore": "^2.3.4",
"sequelize": "^6.19.0",
"tedious": "^15.0.0"
},

我的实体常用文件:

const Sequelize = require("sequelize");
const sequelize = require("../util/database");
const usuario = sequelize.define(
"usuario",
{
usuario: {
type: Sequelize.STRING,
allowNull: false,
primaryKey: true,
},   
pass: {
type: Sequelize.STRING,
allowNull: false,
},
rol: {
type: Sequelize.STRING,
allowNull: false,
},
},
{ timestamps: false, createdAt: false, updatedAt: false }
);
module.exports = usuario;

我的app.js文件

const usuario = require("./models/usuario");
usuario
.findAll()
.then((res) => console.log(res))
.catch((err) => console.log(err));

这适用于我使用SQL Server 2000的情况。希望对你有帮助顺致敬意,

最新更新