Использование схемы Mon goose в нескольких маршрутах с Express - PullRequest
0 голосов
/ 09 марта 2020

Я использую Пн goose & Express. Я совсем новичок в nodejs.

В моих маршрутах / индексе. js у меня есть userDataSchema:

var Schema = mongoose.Schema;
var userDataSchema = new Schema({
  username: String,
  username_lower: String,
  email: String,
  password: String
}, {collection: 'user'});

var UserData = mongoose.model('UserData', userDataSchema);

В этом файле индекса. js прекрасно работает. Я хотел бы использовать ту же схему без ошибок, в файле подключения. js.

Я пытался в индекс. js

module.exports = mongoose.model('UserData', userDataSchema);

в соединение. js

var UserData = require('./index.js');

А затем я использую свои UserData в связи. js. Это не отображает никакой ошибки, но моя страница загружается навсегда, независимо от страницы.

Итак, мой вопрос: как я могу использовать одну и ту же схему в нескольких файлах папки маршрутов?

Я могу заставить ее работать, создав новую схему с другим именем : "UserDatas" в соединении. js вместо "UserData" в index. js (в этом случае я не использую экспорт и не требую ./index.js)

var userDataSchema = new Schema({
    username: String,
    username_lower: String,
    email: String,
    password: String
  }, {collection: 'user'});

  var UserData = mongoose.model('UserDatas', userDataSchema);

Но я не уверен, что это правильный путь?

Большое спасибо:)

Ответы [ 2 ]

1 голос
/ 09 марта 2020

вам нужно использовать новый пн goose .Схема не новая схема, , поэтому попробуйте этот код

const userDataSchema = new mongoose.Schema({
username: String,
username_lower: String,
email: String,
password: String
}, {collection: 'user'});

const UserData = mongoose.model('UserData', userDataSchema);
module.exports = UserData;

Надеюсь, это поможет

0 голосов
/ 09 марта 2020

Файл, в котором вы определяете модель пользователя, должен выглядеть примерно так:

var mongoose = require("mongoose");
var userSchema = mongoose.Schema({
    username: String,
    password: String
});
module.exports = mongoose.model("User", userSchema);

Он находится в папке с названием models. Предполагая, что index. js в том же каталоге, что и папка моделей, вы можете использовать его в index. js с

var User = require("./models/user");

Надеюсь, это поможет!

И это возможно, не лучшая идея поместить определение модели в файл, расположенный в каталоге маршрутов. В идеале у вас будет отдельная папка для маршрутов и моделей для структурирования ваших файлов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...