我正在开发带有Mongoose项目的Express.js,它具有许多模型和控制器。我有一个名为UtilsController
的公用“ utils”类,其中包含许多我从所有其他文件中调用的辅助函数。我的问题是出现以下错误,
TypeError:实用程序不是构造函数
当试图在文件中创建其对象,但在其他文件中完美运行时,则需要完全相同的方法。
以下是示例:
utils.controller.js :我要导入的utils类
const Esplai = require('./models/espais/esplai.model.js');
// some more imports...
const { createLogger, format, transports } = require('winston');
const { combine, timestamp, printf } = format;
class UtilsController {
constructor() {
this.something = "a";
// ...
}
cursActual() {
var avui = new Date();
if(avui.getMonth() < 9){
return avui.getFullYear() - 1;
} else {
return avui.getFullYear();
}
}
// ...
}
module.exports = UtilsController
criteri.model.js :用于导入和实例的猫鼬模型
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var _ = require('lodash');
const moment = require('moment');
var EdT = require('../espais/edt.model');
var Utils = require('../../utils.controller'); //The import
var ut = new Utils(); // The instance
var CrtieriSchema = new Schema({
// ...
})
// And some class methods...
module.exports = mongoose.model('criteris', CriteriSchema);
equip.model.js :猫鼬模型文件不起作用
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
const Utils = require('../../utils.controller.js'); // The import
const ut = new Utils(); // The instance
const _ = require('lodash');
var EquipSchema = new Schema({
// ...
})
EquipSchema.index({ 'nom': 'text'});
module.exports = mongoose.model('equips', EquipSchema);
如您所见,需求和实例化完全相同,并且问题绝对不是require的路径(因为它实际上是通过类导入文件)。
这是错误:
TypeError:Utils不是构造函数 在对象。 (/home/marc/prova/nen/ngx-admin/server/models/espais/equip.model.js:5:12)