TypeError:用户不是向模型添加数据的构造函数

时间:2018-08-16 19:46:36

标签: node.js mongoose

我是Node js和mongoose的新手。我只是试图创建一个数据库并向其中添加数据。 我有users.js,已在其中连接到db并创建了架构。

users.js

    var mongoose = require('mongoose');

    // make a connection 
    mongoose.connect('mongodb://localhost:27017/login_details', { useNewUrlParser: true });

    // get reference to database
    var db = mongoose.connection;

    db.on('error', console.error.bind(console, 'connection error:'));

    db.once('open', function() {
        console.log("Connection Successful!");

        // define Schema
        var UserSchema = mongoose.Schema({
          name: String,
          username: { type: String, required: true, unique: true },
          password: { type: String, required: true }
        });

        // compile schema to model
        var User = mongoose.model('User', UserSchema);

    // a document instance
    module.exports = {User};
});

在test.js中,我试图创建一个新用户。

test.js

var mongoose = require('mongoose')
var User = require("./users");
//Load all your models
//var User = require('./users');

// create a new user called chris
var saps = new User({
  name: 'Midoriya',
  username: 'deku',
  password: 'password'
});


// call the built-in save method to save to the database
saps.save(function(err) {
  if (err) throw err;

  console.log('User saved successfully!');
});

执行test.js时出现以下错误。

var saps = new User({
           ^

TypeError: User is not a constructor
    at Object.<anonymous> (/home/sapan/nodejsdev/websocket-test/test.js:7:12)
    at Module._compile (module.js:652:30)
    at Object.Module._extensions..js (module.js:663:10)
    at Module.load (module.js:565:32)
    at tryModuleLoad (module.js:505:12)
    at Function.Module._load (module.js:497:3)
    at Function.Module.runMain (module.js:693:10)
    at startup (bootstrap_node.js:188:16)
    at bootstrap_node.js:609:3

1 个答案:

答案 0 :(得分:0)

您需要将其移出(933, 4139) (933, 6597069777240) (933, 10995116284808) (933, 32985348833579) (933, 32985348838375) (1129, 1242) (1129, 2199023262543) (1129, 6597069771886) (1129, 6597069776731) 上下文:

db.once

由于已定义它们,因此它们在该上下文中是本地的,在任何其他情况下均不可用。