Экспресс Json Validator Middleware всегда 404, если тело json не имеет ошибки - PullRequest
0 голосов
/ 16 февраля 2019

Я хочу, чтобы это приложение отвечало 200 и пустым json, если тело запроса json не имеет ошибки проверки, но это приложение всегда отвечает 404.

Это приложение использует expressjs и express-json-validator-middleware

Вот некоторый фрагмент приложения:

Server.ts

import express from 'express';
import { createConnection } from 'typeorm';
import { ErrorHandler } from './controllers/ErrorHandler';
import { user } from './routes/User';

class Server {
  public express: express.Application;

  constructor() {
    this.express = express();
    this.express.set('port', process.env.APP_PORT || 3000);
    this.express.use(express.json());
    this.express.use('/auth/registration', user);
    this.express.use(ErrorHandler);
  }
}

export default new Server().express;

маршруты / Пользователь.ts

import express from 'express';
import {register } from '../controllers/User';
import { UserRegistration } from '../entities/jsonschemas/UserRegistration';

const { Validator } = require('express-json-validator-middleware');
const validator = new Validator({allErrors: true});
const validate = validator.validate;

export const user = express.Router();

user.post('/', validate({body: UserRegistration}), register);

controllers / User.ts

export const register = (err: any, req: any, res: any, next: any) => {
  if (err) return next(err);
  res.status(200);
  res.json({});
}

В настоящее время, если обнаруживается ошибка проверки, она реагирует как положено (правильный код состояния, 422).

Как заставить это приложение ответить 200 и пустым json, если в теле запроса json нет ошибки проверки?

1 Ответ

0 голосов
/ 17 февраля 2019

хорошо, у меня все получилось, удалив параметр err в register контроллере.

export const register = (req: any, res: any, next: any) => {
  res.status(200);
  res.json({});
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...