我收到此错误来自我的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
})
});
}
答案 0 :(得分:0)
这里的问题是请求不应将主体作为第二个参数。
request.post(post_options, function(err, res, resBody)
是正确的,正文应位于post_options对象中。当您选择该项目中的所有内容时,请选择camelCase或snake_case。还要查看node-fetch,我认为它是使用请求的可靠升级。