MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Mongoose/NextJS - Моделът не е дефиниран / Не може да презапише модела, след като бъде компилиран

Успях да го оправя. Тук имаше два проблема.

1) Променливата „UserModel“ не съществува в предварителния мидълуер. Решено чрез инстанциране на this.constructor, което очевидно решава проблема (ще се нуждае от допълнително тестване)

2) Очевидно има проблем с NextJS, който изгражда всичко, изглежда, че се опитва да създаде нов модел, когато използвам която и да е функция от UserModel. Това е коригирано при експортиране на вече създаден модел

const mongoose = require("mongoose");
const errorHandler = require("../helpers/errorHandler");

const Schema = mongoose.Schema;

const UserSchema = new Schema({
  userName: String,
  userPassword: String,
  userBanned: Boolean,
  userType: String,
  registeredDate: { type: Date, default: Date.now },
  registeredIP: String,
  lastLoginDate: { type: Date, default: Date.now },
  lastLoginIP: String,
});

UserSchema.pre("save", async function () {
  try {
    const User = this.constructor;
    const userExists = await User.find({
      userName: this.get("userName"),
    })
      .lean()
      .exec();
    if (userExists.length > 0) {
      throw new Error(errorHandler.errors.REGISTER_USERNAME_EXISTS);
    }
  } catch (err) {
    throw new Error(errorHandler.errors.REGISTER_USERNAME_EXISTS);
  }
});

module.exports = mongoose.models.User || mongoose.model("User", UserSchema);



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Как мога да използвам MongoDB, за да намеря всички документи, които имат поле, независимо от стойността на това поле?

  2. Създайте уникално поле за автоматично увеличение с мангуста

  3. mongodb:актуализиране на елементи?

  4. Масовите вложки на Pymongo не работят

  5. Инициализирайте данни за докеризирано монго