【发布时间】: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?