如果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({});
}