Это мой user.jsNodeJS/Mongoose: exports.function и module.exports Несовместимость
var mongoose = require('mongoose');
var bcrypt = require('bcrypt-nodejs');
var UserSchema = mongoose.Schema({
email: {
type: String,
unique: true
},
password: String,
});
var User = mongoose.model('User', UserSchema);
function createDefaultUsers() {
User.find({}).exec(function (err, collection) {
if (collection.length === 0) {
User.create({
email: '[email protected]',
password: 'password0',
});
}
exports.createDefaultUsers = createDefaultUsers;
module.exports = mongoose.model('User', UserSchema);
Я называю createDefaultUsers в другом файле для создания начальных пользователей.
Но когда это дает мне следующую ошибку:
userModel.createDefaultUsers(); ^TypeError: Object function model(doc, fields, skipId) { if (!(this instanceof model)) return new model(doc, fields, skipId); Model.call(this, doc, fields, skipId); } has no method 'createDefaultUsers'
Но если я закомментировать module.exports = mongoose.model('User', UserSchema);
компилирует нормально. Что я делаю неправильно.
Cheers.
Я не понимаю, почему вы используете 'экспорт. createDefaultUsers = createDefaultUsers; '. Вы либо экспортируете модель, либо что-то еще, не то и другое, если вы не экспортируете объект, содержащий оба. –
@KevinB Мне нужно экспортировать эту функцию для вызова из другого модуля во время инициализации. Лучший способ сделать это? – madu
Вы можете прикрепить его к модели или схеме, см. Здесь: http://mongoosejs.com/docs/guide.html (методы экземпляра и статические методы) –