Node.js 错误:db.sequelize.define不是NodeJS中的函数

Node.js 错误:db.sequelize.define不是NodeJS中的函数,node.js,sequelize.js,Node.js,Sequelize.js,我是node新手,在这里我将把mysql映射到我的node项目。 model/User.js const Sequelize = require('sequelize') const db = require('../database/db.js') module.exports = db.sequelize.define( 'user', { user_id: { type: Sequelize.INTEGER,

我是node新手,在这里我将把mysql映射到我的node项目。 model/User.js

const Sequelize = require('sequelize')
const db = require('../database/db.js')

module.exports = db.sequelize.define(
    'user',
    {
        user_id: {
            type: Sequelize.INTEGER,
            primaryKey: true,
            autoIncrement: true
        },
        first_name: {
            type: Sequelize.STRING
        },
        last_name: {
            type: Sequelize.STRING
        },
        email: {
            type: Sequelize.STRING
        },
        password: {
            type: Sequelize.STRING
        }
    },
    {
        timestamps: false
    }
);
    

const Sequelize = require("sequelize")
const db = {}
const sequelize = new Sequelize("node","root","",{
    host: "localhost",
    dialect: "mysql",
    operatorsAliases: false,

    pool: {
        max: 5,
        min: 0,
        acquire:30000,
        idle:10000
    }
})

db.sequelize = sequelize
db.sequelize = Sequelize

module.exports = db
在上述代码中,
module.exports=db.sequelize.define()
出现错误,原因是db.sequelize.define不是函数。代码中出现此错误的原因是什么

数据库/db.js

const Sequelize = require('sequelize')
const db = require('../database/db.js')

module.exports = db.sequelize.define(
    'user',
    {
        user_id: {
            type: Sequelize.INTEGER,
            primaryKey: true,
            autoIncrement: true
        },
        first_name: {
            type: Sequelize.STRING
        },
        last_name: {
            type: Sequelize.STRING
        },
        email: {
            type: Sequelize.STRING
        },
        password: {
            type: Sequelize.STRING
        }
    },
    {
        timestamps: false
    }
);
    

const Sequelize = require("sequelize")
const db = {}
const sequelize = new Sequelize("node","root","",{
    host: "localhost",
    dialect: "mysql",
    operatorsAliases: false,

    pool: {
        max: 5,
        min: 0,
        acquire:30000,
        idle:10000
    }
})

db.sequelize = sequelize
db.sequelize = Sequelize

module.exports = db

问题在于数据库文件
db.js
中定义和导出sequelize的方式。我建议您将其更改为:

  const { Sequelize } = require('sequelize');
    const db = new Sequelize("node","root","",{
        host: "localhost",
        dialect: "mysql",
        operatorsAliases: false,
    
        pool: {
            max: 5,
            min: 0,
            acquire:30000,
            idle:10000
        }
    })
    
    // I deleted what was causing the problem

    module.exports = db;
model/User.js中,您只需使用
db.define()
调用
define()

这就是问题所在。 拆下第2行。 或将其更改为:

db.Sequelize = Sequelize
然后不要使用

const Sequelize = require('sequelize')

在你的文件中,使用db.Sequelize代替。

请检查上的答案。你能更新问题并包含db.js的代码吗?@Runsis我用db.js代码编辑了问题。好的,我找到了问题并添加了答案:D Kamalka!希望您能将其标记为已接受谢谢。db.**S**equalize=Sequelize这就是我的代码的问题。当我纠正它的工作。非常感谢您的代码。我真的很感激,我学到了很多。