Как исправить 'UnhandledPromiseRejectionWarning: ReferenceError:'? - PullRequest
0 голосов
/ 01 октября 2019

Я участвую в этом событии под названием Semana OmniStack 9.0, для которого мы в настоящее время разрабатываем серверную часть приложения на NodeJS с MVC и MongoDB, поэтому в одном из моих контроллеров появляется эта ошибка «UnhandledPromiseRejectionWarning: ReferenceError:Spot не определен, что я пытался решить, но безуспешно.

Я уже проверил и сравнил свой код с Лектором, думаю, что я что-то напутал на стороне асинхронного ожидания JS, который я никогда не кодировал раньше.

Это мой SpotController:

const spot = require('../models/Spot');

module.exports = {
    async store(req, res) {
        const { filename } = req.file;
        const { company, techs, price } = req.body;
        const { user_id } = req.headers;

        const spot = await Spot.create({
            user: user_id,
            thumbnail: filename,
            company,
            techs: techs.split(',').map(tech => tech.trim()),
            price
        });

        return res.json(spot);
    }
};

А это модель Spot для БД (которая MongoDB):

const mongoose = require('mongoose');

const SpotSchema = new mongoose.Schema({
    thumbnail: String,
    company: String,
    price: Number,
    techs: [String],
    user: {
        type: mongoose.Schema.Types.ObjectId,
        ref: 'User'
    }
});

module.exports = mongoose.model('Spot', SpotSchema);

И после того, как я запустил Insomnia (это программа, похожая на Postman), приложение вылетает и выдает эту ошибку:

(node:13956) UnhandledPromiseRejectionWarning: ReferenceError: Spot is not defined
    at store (C:\Users\sadkevin\Desktop\Programs\Rocketseat\SemanaOmnistack9\backend\src\controllers\SpotController.js:9:22)
    at Layer.handle [as handle_request] (C:\Users\sadkevin\Desktop\Programs\Rocketseat\SemanaOmnistack9\backend\node_modules\express\lib\router\layer.js:95:5)
    at next (C:\Users\sadkevin\Desktop\Programs\Rocketseat\SemanaOmnistack9\backend\node_modules\express\lib\router\route.js:137:13)
    at Immediate.<anonymous> (C:\Users\sadkevin\Desktop\Programs\Rocketseat\SemanaOmnistack9\backend\node_modules\multer\lib\make-middleware.js:53:37)
    at runCallback (timers.js:706:11)
    at tryOnImmediate (timers.js:676:5)
    at processImmediate (timers.js:658:5)
(node:13956) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was
not handled with .catch(). (rejection id: 1)
(node:13956) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

После того, как я отправил данные с Imsonia, он должен вернуть мне файл JSON, любые идеиребята?

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