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