TypeError:User不是构造函数 - Mongoose Node.js Express-Validator

时间:2018-03-14 10:22:04

标签: node.js mongoose

我收到了这个错误:

  

"用户不是构造函数TypeError"

我无法找出代码中的错误。任何建议表示赞赏!!

路由/ users.js

var mongoose = require('mongoose');
var bcrypt = require('bcrypt');

var UserScheme = mongoose.Schema({
    name: {
        type: String,
        index: true
    },
    email: {
        type: String
    },
    phone: {
        type: String
    },
    password: {
        type: String
    }
});

var User = module.export = mongoose.model('User', UserScheme);

// encrypting password into hash
module.export.createUser = function(newUser, callback){
    bcrypt.genSalt(saltRounds, function(err, salt) {
        bcrypt.hash(newUser.password, salt, function(err, hash) {
            newUser.password = hash;
            newUser.save(callback);
        });
    });
};

模型/ user.js的

import leaflet from 'leaflet';

如果需要更多代码,我可以更新帖子。

1 个答案:

答案 0 :(得分:1)

您需要将module.export更改为module.exports

node docs here *请注意,exports是指向module.exports的快捷方式。 module.exports是需要模块时返回的默认对象。在您的示例中,您创建了一个名为export的模块的新属性。 here is a blog post描述了exports和module.exports之间的关系。

考虑以下示例:

stack: cat ./49275169.js
console.log('export', module.export)
console.log('exports', module.exports)

stack: node ./49275169.js 
export undefined
exports {}

stack: 

这是一个猫鼬的例子:

stack: cat module.js 

const mongoose = require('mongoose')
const Schema = mongoose.Schema

const schema = new Schema({ name: String })
const User = module.exports = mongoose.model('Users', schema)

module.exports.createUser = function (newUser, callback) {
  console.log(new User({ name: 'Rohit' }))
}

stack: cat ./49275169.js 

const mongoose = require('mongoose')
const User = require('./module')

mongoose.connect('mongodb://localhost/test')

const user = new User({
  name: 'Branford'
})

user.save((err, doc) => {
  if (err) { return console.error(err) }
  mongoose.connection.close()
  return console.log(doc)
})

User.createUser()

stack: node ./49275169.js 

{ name: 'Rohit', _id: 5aa9138819d660182938b128 }
{ name: 'Branford', _id: 5aa9138819d660182938b127, __v: 0 }
stack: