javascript - Mongoose 保存不起作用 "id is not defined"

标签 javascript node.js mongodb mongoose

这是我第一次使用 Mongoose,保存功能对我不起作用...

在用户模型文件上:

var mongoose = require('mongoose');
var Schema = mongoose.Schema;

var User = mongoose.model('User', {
  name: Schema.Types.Mixed,
  gender: String,
  email: String
});

module.exports = User;

在我的用户 Controller 文件上:

// Create a user
router.post('/', function(req, res) {
  var user = new User(req.body);
  user._id = mongoose.Types.ObjectId();
  user.save(function(err) {
    if (err) {
      return res.status(500).json({
        error: "Error creating user: " + err
      });
    }

    return res.status(200).end();
  });
});

我尝试了所有方法,但无法将用户对象保存到数据库:“id 未定义” 在数据库上,_id 是一个 ObjectId。

谢谢。

最佳答案

mongoose.model receives collection name and a Schema as arguments ,不是一个常规对象。

因此您应该使用以下代码:

var schema = new mongoose.Schema({
  name: Schema.Types.Mixed,
  gender: String,
  email: String
});
var User = mongoose.model('User', schema);

关于javascript - Mongoose 保存不起作用 "id is not defined",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40250977/

相关文章:

php - MongoDB 为帖子存储 "like"的最佳技术

javascript - Jquery选择器下一个元素

javascript - 上传 <img> 到服务器而不通过 Canvas ?

node.js - 批处理文件调用 Node.js - 如何从 Node 设置 ERRORLEVEL

javascript - 序列化 Javascript 代码

node.js - 使用 $PUSH 进行更新在 Mongoose + Express + Node 中不起作用

javascript - JScript 等待函数

javascript - Cypress 在命令日志中看不到请求

node.js - Node JS 上的应用程序如何访问需要身份验证的第三方站点?

javascript - 数组过滤器(mongodb)在我的nodejs后端不起作用