编程语言
首页 > 编程语言> > javascript-重新验证GET请求正文

javascript-重新验证GET请求正文

作者:互联网

我正在使用restify构建rest api,我需要在get请求中允许发布正文.我正在使用bodyparser,但它只提供一个字符串.我希望它是一个像普通发布端点中那样的对象.

如何将它变成一个对象?这是我的代码:

const server = restify.createServer();
server.use(restify.queryParser());
server.use(restify.bodyParser());
server.get('/endpoint', function (req, res, next) {
    console.log(typeof req.body);
    console.log(req.body && req.body.asd);
    res.send(200);
});

解决方法:

restify中的bodyParser不会默认为使用GET方法的请求正文解析有效的JSON(我假设您正在使用).您必须将requestBodyOnGet键设置为true的bodyParser初始化提供一个配置对象:

server.use(restify.bodyParser({
    requestBodyOnGet: true
}));

为了确保请求的主体为JSON,我还建议您检查端点处理程序中的content-type.例如:

const server = restify.createServer();
server.use(restify.queryParser());
server.use(restify.bodyParser({
    requestBodyOnGet: true
}));
server.get('/endpoint', function (req, res, next) {
    // Ensures that the body of the request is of content-type JSON.
    if (!req.is('json')) {
        return next(new restify.errors.UnsupportedMediaTypeError('content-type: application/json required'));
    }
    console.log(typeof req.body);
    console.log(req.body && req.body.asd);
    res.send(200);
});

标签:node-js,restify,javascript
来源: https://codeday.me/bug/20191111/2018640.html