答案 0 :(得分:3)
我通过将我的常规require语法更改为
解决了与智能感知相关的问题 const {Sequelize}=require('sequelize');
答案 1 :(得分:0)
未获得Intellisense的原因可能是因为您没有importing
通过正确的序列化来正确建模。假设您要在单独的文件中定义模型,然后将其导入。我建议您执行以下操作:
index.js
文件夹中创建一个models
文件sequelize.import
导入所有模型并进行关联。seqeulize db instance
和Sequelize
模块导出。require
中的/models
分贝就可以建立模型。models / index.js
const sequelize = new Sequelize(DB_NAME, DB_USERNAME, DB_PASSWORD)
const db = {
Sequelize: Sequelize,
sequelize,
User: sequelize.import("./user"),
Message: sequelize.import("./message")
}
Object.keys(db).forEach(model => {
if ("associate" in db[model]) {
db[model].associate(db)
}
})
module.exports = db
答案 2 :(得分:0)
我发现以前版本的 Intellisense 可以工作,但不稳定(或 6.x)版本。
所以你可以试试这个:
const {Sequelize} = require("sequelize");
或
const Sequelize = require("sequelize").Sequelize
以下任何一种都有效。
答案 3 :(得分:0)
按照此操作,您将获得 Intellisense 正常工作。
'use strict';
const Sequelize = require('sequelize');
const db = {};
/**
* @type {Sequelize.Sequelize}=con
*/
let con = new Sequelize(process.env.db_database, process.env.db_username, process.env.db_password, {
host: process.env.db_host,
dialect: "mysql"
});
(async function () {
try {
//ck connection
await con.authenticate()
//attach models
db.User = require('./User')
db.Test = require('./Test')
//associate
Object.keys(db).forEach(modelName => {
// if (db[modelName].associate) {
// db[modelName].associate(db);
// }
});
//sync
await con.sync({
logging: true,
force: false
})
} catch (e) {
console.log("error db con: ", e.name)
}
}())
db.con = con
module.exports = db;
const { DataTypes } = require('sequelize');
const { con } = require('.');
const User = con.define("User", {
name: {
type: DataTypes.STRING,
allowNull: false
},
password: {
type: DataTypes.STRING,
allowNull: false
}
})
module.exports = User