遇到用户ID问题

时间:2018-04-30 23:29:05

标签: node.js mongodb express

所以我正在构建一个Web应用程序,我有很多工作。但是,我试图将我的user._id链接到我的项目数据库。但当我尝试使用邮递员发布项目时,应用程序崩溃说它无法读取属性' _id'为null。我知道我错过了一些东西,但老实说,我无法弄清楚我需要实现的其他代码。任何帮助都会很棒。感谢

以下是UserSchema的代码:

Sheet2

以下是ItemSchema的代码:

const mongoose = require('mongoose');
const passportLocalMongoose = require("passport-local-mongoose");

const UserSchema = new mongoose.Schema({
  username: {
    type: String,
    trim: true,
    unique: true,
    required: true,
    minlength: 3,
    maxlength: 15
  },
  firstName: {
    type: String,
    required: true,
    minlength: 3,
    maxlength: 15
  },
  lastName: {
    type: String,
    required: true,
    minlength: 3,
    maxlength: 15
  },
  email: {
    type: String,
    unique: true,
    required: true
  },
  resetPasswordToken: String,
  resetPasswordExpires: Date,
  isAdmin: {
    type: Boolean,
    default: false
  }
});

UserSchema.plugin(passportLocalMongoose);

module.exports = mongoose.model("user", UserSchema);

以下是抛出错误的路线的代码:

const mongoose = require('mongoose');
const User = require('./user');

const ItemSchema = new mongoose.Schema({
  name: {
    type: String,
    required: true,
    minlength: 3,
    maxlength: 20
  },
  description: {
    type: String,
    required: true
  },
  price: {
    type: Number,
    required: true
  },
  createdBy: {
    id: {
      type: mongoose.Schema.Types.ObjectId,
      ref: "User"
    },
    username: String
  },
  createdAt: {
    type: Date,
    default: Date.now
  }
});

module.exports = mongoose.model("items", ItemSchema);

1 个答案:

答案 0 :(得分:-1)

您需要以邮递员的json格式发送数据,例如: {'id':1, 'name':'jhon doe', 'email':'jhondoe@example.com'}

在你的后端文件中需要调用

req.body.id不是req.user._id