最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

如果json主体没有错误,Express Json Validator Middleware总是404

运维笔记admin16浏览0评论

如果json主体没有错误,Express Json Validator Middleware总是404

如果json主体没有错误,Express Json Validator Middleware总是404

我想让这个应用程序响应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;

路线/ 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);

控制器/ 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?

回答如下:

好吧,我通过删除err控制器中的register参数来实现它。

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

评论列表(0)

  1. 暂无评论