Как исправить ошибку ссылки: регистратор не определен - PullRequest
0 голосов
/ 12 мая 2019

В настоящее время я получаю сообщение об ошибке «ReferenceError: logger is notfined» при выполнении некоторых тестов. Эти ошибки не возникали, пока мои конечные точки были в моем app.js. Они начали появляться только тогда, когда я переместил свои конечные точки в мой файл маршрутизатора.

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

const express = require("express");
const uuid = require("uuid/v4");
const logger = require("../logger");
const { bookmarks } = require("../store");
const BookmarksService = require("../bookmarks-service");

const bookmarkRouter = express.Router();
const bodyParser = express.json();

bookmarkRouter
  .route("/bookmarks")
  .get((req, res, next) => {
    const knexInstance = req.app.get("db");
    BookmarksService.getAllBookmarks(knexInstance)
      .then(bookmarks => {
        res.json(bookmarks);
      })
      .catch(next);
  })
  .post(bodyParser, (req, res) => {
    //implementation
    for (const field of ["title", "url", "rating"]) {
      if (!req.body[field]) {
        logger.error(`${field} is required`);
        return res.status(400).send(`${field} is required`);
      }
    }

    const { title, url, rating, desc } = req.body;

    if (!title) {
      logger.error("Title is required");
      return res.status(400).send("Invalid data");
    }

    if (!url) {
      logger.error("Url is required");
      return res.status(400).send("Invalid data");
    }

    if (!desc) {
      logger.error("Desc is required");
      return res.status(400).send("Invalid data");
    }

    const id = uuid();

    const bookmark = {
      id,
      title,
      url,
      rating,
      desc
    };

    bookmarks.push(bookmark);

    logger.info(`Bookmark with bookmark ${id} created`);

    res
      .status(201)
      .location(`http://localhost.8000/bookmark/${id}`)
      .json(bookmark);
  });

bookmarkRouter
  .route("/bookmarks/:id")
  .get((req, res, next) => {
    //implementation
    const { id } = req.params;
    const bookmark = bookmarks.find(b => b.id == id);
    const knexInstance = req.app.get("db");
    BookmarksService.getById(knexInstance, id)
      .then(bookmark => {
        if (!bookmark) {
          logger.error(`Bookmark with id ${id} not found`);
          return res.status(404).send({
            error: { message: `Bookmark doesn't exist` }
          });
        }
        res.json(bookmark);
      })
      .catch(next);
  })
  .delete((req, res) => {
    //implementation
    const { id } = req.params;

    const bookmarkIndex = bookmarks.findIndex(li => li.id == id);

    if (bookmarkIndex === -1) {
      logger.error(`Bookmark with id ${id} not found.`);
      return res.status(400).send("Not found");
    }

    bookmarks.splice(bookmarkIndex, 1);

    logger.info(`Bookmark with id ${id} deleted`);
    res.status(204).end();
  });

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