gpt4 book ai didi

javascript - Sequelize Single Instance - 在 Module.exports 之后不工作

转载 作者:行者123 更新时间:2023-11-29 02:55:44 28 4
gpt4 key购买 nike

我有这个用于连接到我的数据库的 Sequelize 代码

var sequelize = new Sequelize('db-name', 'user', 'pwd', {
host: 'XXX.XX.XX.XXX',
dialect: 'mysql',

pool: {
max: 50,
min: 0,
idle: 1000000
},
});

我已经把它包装在一个像下面这样的模块中了

var express = require('express');
var app = module.exports = express();
var Sequelize = require('sequelize');


module.exports = function (Sequelize, DataTypes) {
return new Sequelize('db-name', 'user', 'pwd', {
host: 'XXX.XX.XX.XXX',
dialect: 'mysql',
pool: {
max: 50,
min: 0,
idle: 1000000
},
});
};

但是,当我在下面调用这段代码时:

var sequelize = require('../../Connection.js');
//load model
var City = sequelize.import('../../models/City.js');

它给我一个错误提示 - undefined is not a function。基本上当我导入模块时它无法实例化 sequelize 对象

但是当我将这些 block 放在一页中时一切正常

我的核心要求 - 我想要跨我的 Node 应用程序的单个连接对象。我在各个页面中模块化了 Express Routes。

最佳答案

您的 sequelize 模块导出一个函数,该函数返回 sequelize。您必须实际调用该函数

var sequelize = require('../../Connection.js')() <-- ;

请记住在 connection.js 中缓存实例 - 否则每次都会获得一个新连接。也可以直接导出实例:

module.exports = new Sequelize('db-name', 'user', 'pwd', {
host: 'XXX.XX.XX.XXX',
dialect: 'mysql',
pool: {
max: 50,
min: 0,
idle: 1000000
},
});

关于javascript - Sequelize Single Instance - 在 Module.exports 之后不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30811228/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com