首页 文章

Sequelize与Nodejs的连接

提问于
浏览
0

我在使用NodeJs连接SEQUELIZE(mysql)时面临问题 . 虽然已 Build 连接但模型配置不正确 . 我用这种方法 -

./config/sequelize-conn.js

'use strict';
var sequelize  = function (config, Sequelize) {
var sql = new Sequelize(config.mysql.db, config.mysql.user, config.mysql.pass, {
    host:        config.mysql.host,
    dialect:     'mysql', //|'sqlite'|'postgres'|'mssql'
    pool:        {
        max:  5,
        min:  0,
        idle: 10000
    },
    //logging:     true,
    underscored: true
});
sql
    .sync({force: true})
    //.authenticate()
    .then(function () {
        console.log('Connection has been established successfully with mysql.');
    }, function (error) {
        console.log('Connection with mysql failed.', error);
    });
return sql;
};
module.exports = sequelize;

//server.js

var sequelize     = require('sequelize');
var sqlConnection = require('./config/sequelize-conn')(config, sequelize);

我想用这种方式直接使用模型..

models/HotelGroup.js

var Sequelize  = require('sequelize');
var sequelize  = require('../../config/sequelize-conn');
var HotelGroup = Sequelize.define('hotel_chains', {
    id:         {
        type:          Sequelize.INTEGER(11),
        allowNull:     false,
        primaryKey:    true,
        autoIncrement: true
    },
    hotel_name: {
        type:      Sequelize.STRING,
        allowNull: false
    },
    hotel_code: {
        type:      Sequelize.STRING,
        allowNull: false
    },
    status:     {
        type:         Sequelize.BOOLEAN,
        allowNull:    false,
        defaultValue: '1'
    }
}, {
    tableName:       'hotel_chains',
    timestamps:      false,
    paranoid:        true  // Model tableName will be the same as the model name
});
module.exports = HotelGroup;

Its giving me error that sequelize.define is not a function.

虽然连接正在 Build ,但是当我尝试使用require访问服务文件中的任何模型时 . 它打破了此错误消息 . 我在哪里做错了 .

1 回答

  • 1

    我认为你需要使用sequelize的实例,而不是类 . 所以 sequelize.define 不是 Sequelize.define .

    此外,您需要正确实例化它: var sequelize = new Sequelize(...)

相关问题