Как я могу добавить 3 поля в модель Mongoose, используя предварительную функцию

#mongodb #express #mongoose

#mongodb #выразить #mongoose

Вопрос:

Я собираюсь добавить предварительную оценку, промежуточную оценку, итоговую оценку к моей общей оценке и разделить ее на 3. Этот код выдает мне нулевое значение.

я попытался выполнить поиск здесь и нашел проблему с решением, но значение также выдает мне null.

Вот мой код на моем Test.js схема

 const mongoose = require("mongoose");
const Schema = mongoose.Schema;

const TestSchema = new Schema({
  prelim: { type: Number, default: 1 },
  midterm: { type: Number, default: 1 },
  finals: { type: Number, default: 1 },
  overall: { type: Number }
});

module.exports = Test = mongoose.model("tests", TestSchema);

TestSchema.pre("save", function(next) {
  this.overall = (this.prelim   this.midterm   this.finals)/3;
  next();
});

  

и это мой код на моем маршруте

 router.post("/test", (req, res) => {
  const { prelim, midterm, finals, overall } = req.body;
  const test = new Test({
    prelim,
    midterm,
    finals,
    overall
  });
  test.save().then(test => {
    res.json(test);
  });
});
  

я ожидаю, что это даст мне значение, но оно дает мне null.

Комментарии:

1. Отображается ли значение null в DB???

2. Этого не происходит, но я исправил это сейчас, Module.exports должен быть после testschema

Ответ №1:

Модуль.exports должен быть после testSchema. У меня это сработало