Тело js post отправляет запрос в Joi Validation Package - PullRequest
0 голосов
/ 19 декабря 2018

Недавно я работаю с узлом js и Joi пакетом проверки для узла .Я отправляю данные через почтальон используя тело, без параметров.Но в приложении js тело запроса показывает неопределенное.Вот фрагменты:

const express = require('express');
const Joi = require('joi');
const app = express();

app.listen(3000, () => 'Server is listening on 3000');

app.post('/users', (request, response) => {
    const schema = Joi.object().keys({
        username: Joi.string()
            .alphanum()
            .min(3)
            .max(30)
            .required()
    });

    const result = Joi.validate(request.body, schema);
    response.send(result);
});

1 Ответ

0 голосов
/ 20 декабря 2018
use this example

const express = require('express');
const bodyParser = require('body-parser');
const Joi = require('joi');
const expressJoi = require('express-joi-validator');
var app = express();

app.use(bodyParser.json());

const schema = {
    query: {
        name: Joi.string().required()
    },
    body: {
        age: Joi.number().required(),
        company: Joi.object({
            name: Joi.string().required(),
            role: Joi.string().required().valid('HR', 'Technical') //enum style validation
        }).required()
    },
    params: {
        id: Joi.number().required()
    }
}

app.post('/testapi/:id', expressJoi(schema), function(req, res){
    res.send('validated');
});

//error handler
app.use(function (err, req, res, next) {
    if (err.isBoom) {
         return res.status(err.output.statusCode).json(err.output.payload);
    }
});

app.listen('3000',  ()=>{
    console.log(`listening to 3000`);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...