【问题标题】:Express Json Validator Middleware always 404 if the json body doesn't have error如果 json 正文没有错误,Express Json Validator Middleware 总是 404
【发布时间】:2019-02-17 07:05:19
【问题描述】:

如果 json 请求正文没有验证错误,我想让这个应用程序响应 200 和一个空的 json,但是这个应用程序总是响应 404。

本应用使用 expressjs 和express-json-validator-middleware

这是一些应用程序sn-p:

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;

routes/User.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)。

如果json请求正文没有验证错误,如何让这个应用程序响应200和一个空的json?

【问题讨论】:

  • 如果req.body 包含您要发送的数据,您能否在user.post 处理程序中检查console.log

标签: node.js json express


【解决方案1】:

好吧,我已经通过删除 register 控制器中的 err 参数让它工作了。

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

【讨论】:

    猜你喜欢
    • 2022-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-06
    • 2021-01-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多