协议无效:未定义 - POST请求中的NodeJS错误 -

问题描述 投票:0回答:1

我收到此错误来自我的require.post(错误) 它是一个从流浪盒中部署的lambda函数。它是一个api的包装器,event.body有正确格式化的post json,当帖子从postman完成时,一切都很完美。我已经看到了一个大致相似的问题

npm config set proxy http://usr:pwd@host:port
npm config set https-proxy http://usr:pwd@host:port

请帮忙! :)

Error: Invalid protocol: undefined
at Request.init (/var/task/node_modules/request/request.js:454:31)
at new Request (/var/task/node_modules/request/request.js:127:8)
at request (/var/task/node_modules/request/index.js:53:10)
at Function.post (/var/task/node_modules/request/index.js:61:12)
at module.exports.startVerifyProcess (/var/task/handler.js:83:13)

我的代码:

module.exports.startVerifyProcess = (event, context, callback) => {
    var body = JSON.parse(event.body);
    const params = querystring.parse(event.body);
console.warn(body);
var Re;

    var post_options = {
        host: 'api.demo.veri.com',
        path: '/api/v1/verify/requests',
        port: 443,
        method: 'POST',
        headers: {
           // 'Content-Type': 'application/json',
           // 'Content-Length': Buffer.byteLength(event.body),
            "Authorization": "myValidAuth",
        },           
    }

    request.post(post_options, body, function(err, res, resBody) {
            if (err){
                console.error(err);
            }

        console.warn("RESPONSE "  + resBody);
        });

    callback(null, {
        statusCode: 200,
        body: JSON.stringify({
            body: Re
        })
    });
}
javascript node.js request http-post aws-lambda
1个回答
0
投票

这里的问题是请求不应该将body作为第二个参数。 request.post(post_options, function(err, res, resBody)是正确的,正文应该在post_options对象中。虽然你在那个项目中选择了camelCase或snake_case。另请查看node-fetch我会认为它是使用请求的可靠升级。

© www.soinside.com 2019 - 2024. All rights reserved.