Можно ли вывести данные журнала в Exressjs? - PullRequest
0 голосов
/ 30 мая 2018

Я разрабатываю небольшое MEAN-приложение и сталкиваюсь с проблемой при попытке удалить или обновить запись.

book.component.ts

deleteBook(id) {
  this.api.deleteBook(id)
    .subscribe(res => {
        this.router.navigate(['/books']);
      }, (err) => {
        console.log(err);
      }
    );
}

api.service.ts

deleteBook(id: string): Observable<{}> {
  return this.http.delete(`${apiUrl}/${id}`, httpOptions)
    .pipe(
      catchError(this.handleError)
    );
}

Это вывод из командной строки для ExpressJS и Angular:

[1] [HPM] Rewriting path from "/api/5b0e61859a51ca1cc05ef819" to "http://localhost:3000/api/5b0e61859a51ca1cc05ef819"
[0] DELETE /api/5b0e61859a51ca1cc05ef819 500 0.180 ms - -
[1] [HPM] DELETE /api/5b0e61859a51ca1cc05ef819 ~> http://localhost:3000

В консоли браузера есть это:

Backend вернул код 500, тело было: null

Это мой /routes/book.jsфункция удаления:

router.delete(':/id', function(req, res, next) {
  Book.findByIdAndRemove(req.params.id, req.body, function (err, post) {
    if (err) return next (err);
    res.json(post);
  })
})

Таким образом, похоже, что идентификатор передан в бэкэнд правильно, но похоже, что запрос пуст в маршруте книги?

Можно ли регистрировать происходящеена стороне ExpressJS?

1 Ответ

0 голосов
/ 30 мая 2018

Вы можете использовать регистратор, например morgan.

Добавить зависимость с npm i morgan на свой сервер, затем добавить morgan в качестве промежуточного ПО:

var morgan = require('morgan');
// Standard Apache combined log output
app.use(morgan('combined'));

Другой регистратор, который вы можете использовать: winston.

Или добавьте его перед всеми другими маршрутами:

// Only in development
if (process.env.NODE_ENV === 'development') {
  app.use((req, res, next) => {
    console.log(req);
    next();
  }
}

Редактировать: Используете ли вы body-parser

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