为什么续集Intellisense不起作用?

时间:2019-10-29 13:44:14

标签: node.js visual-studio sequelize.js

如何打开node.js sequelize的Intellisense?

没有模型方法:

no intellisense for sequelize model

我能做什么?

4 个答案:

答案 0 :(得分:3)

我通过将我的常规require语法更改为

解决了与智能感知相关的问题
 const {Sequelize}=require('sequelize');

答案 1 :(得分:0)

未获得Intellisense的原因可能是因为您没有importing通过正确的序列化来正确建模。假设您要在单独的文件中定义模型,然后将其导入。我建议您执行以下操作:

  1. 在您的index.js文件夹中创建一个models文件
  2. 使用sequelize.import导入所有模型并进行关联。
  3. 然后将它们全部从index.js以及seqeulize db instanceSequelize模块导出。
  4. 在项目中的任何地方,您只需要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 正常工作。

  1. /models/index.js

'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;


  1. /models/User.js
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