如何validationExpress Nodejsstring中的body参数是否可以使用express-validation和joi转换为JSON
我正在创build一个接受post请求的函数。 发布请求还包含一个转换为string的JSON对象。 在后端,我需要validation这个string是否确实可以parsing成JSON,然后才能继续。 有路由function:
var express = require('express'); var validate = require('express-validator'); var hotelController = require('../controllers/hotel-controller'); var hotelValidation = require('../validations/hotel-validation'); var router = express.Router(); router.route('/create') .post(validate(hotelValidation.createHotel), hotelController.create);
这是validation对象:
var Joi = require('joi'); module.exports = { createHotel: { body: { //NEED TO CHECK IF THE BELOW FIELD //CAN BE CONVERTED TO JSON FROM STRING data: Joi.string().required() } } };
就这个问题发表评论, Joi.object()
仍然可以使用JSON
string, Joi.array()
也可以。
它在API中有logging
生成匹配对象数据types的模式对象(以及parsing为对象的JSONstring)。
例如,给定模式:
Joi.object().keys({ body: Joi.object().keys({ data: Joi.object(), array: Joi.array() }) })
有效负载可以是:
{ body: { data: '{"json": true, "foo": "bar"}', array: '[1, 2, 3, "hello", 4, "world"]' } }
上面的例子可以在这里演示,只需粘贴架构和示例数据。