Ошибка: не удается найти модуль "../models/User" - Mon goose schema - PullRequest
1 голос
/ 05 августа 2020

Я импортирую модуль в свое приложение Sapper, но получаю сообщение об ошибке Cannot find module '../models/User'

Импортировано с const User = require('../models/User');

Экспортировано как module.exports = User = mongoose.model('user', UserSchema);

Что мне не хватает для работы? Путь правильный согласно vscode.

enter image description here

'../models/User.js':

const mongoose = require('mongoose');

const UserSchema = new mongoose.Schema({
  name: {
    type: String,
    required: true,
  },
  email: {
    type: String,
    required: true,
    unique: true,
  },
  password: {
    type: String,
    required: true,
  },
  date: {
    type: Date,
    default: Date.now,
  },
});

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

EDIT: I re-created the error by starting a new project with npx degit "sveltejs/sapper-template#rollup" my-app.

I'm getting the same error even though the project is new, and I haven't installed any additional dependencies ссылка .

Путь правильный, что подтверждается vscode

Ответы [ 2 ]

0 голосов
/ 07 августа 2020

У меня нет большого опыта работы с Sapper, но насколько я мог проверить, проблема в том, что фактический вызов совершается __sapper_/dev/server/server.js, а не из вашей папки src. Если вы используете const User = require('../../../models/User'), он должен работать, но вам нужно будет иметь дело с этим глубоким относительным путем.

Вам нужно будет либо экспортировать папку с моделями по пути, близкому к этому файлу, либо придумать функцию чтобы определить путь root и использовать его в качестве префикса, когда требуются ваши модели, например const User = require(rootPath() + './models/User').

0 голосов
/ 05 августа 2020

Когда вы наводите курсор на строку внутри require, он показывает полный путь к файлу, на который вы ссылаетесь. Проверьте, существует ли необходимый модуль, выполнив ls <path of odule>

...