我希望我的lambda函数能够发出网络请求。
这是我的提供者
provider:
name: aws
runtime: nodejs10.x
我在项目的根源package.json
和node_modules
。
我像这样导入超级代理:const request = require('superagent')
.
但是每当我尝试使用它(await request.post(url).send(body)
(,它都会抛出一个错误说
ERROR ERR TypeError: Cannot read property 'request' of undefined
at Request.request
您不必使用任何外部库来发出 http/https 请求。 相反,您可以使用nodejs http/https模块。 下面是一个 https 请求作为承诺的工作示例,灵感来自 Nodejs 文档中的示例(下面的链接(:
const https = require('https');
const requestPromise = (options, request_body= '') => {
return new Promise((resolve, reject) => {
let response_data;
const post_req = https.request(options, (res) => {
res.on('data', (chunk) => {
if (response_data) {
response_data += chunk;
} else {
response_data = chunk;
}
});
res.on('end', () => {
resolve(response_data);
});
});
// request error
post_req.on('error', (err) => {
reject(err);
});
// post data and end request
post_req.write(JSON.stringify(request_body));
post_req.end();
});
}
以下是您的使用方式:
const request_body = {
"data": "your data"
};
const request_options = {
host: host,
path: path,
method: 'POST',
headers: {
'Content-Type': 'application/json' // your headers
},
data: JSON.stringify(request_body)
};
const response = await requestPromise(request_options , request_body );
有关更多信息,请查看 Nodejs 文档: https://nodejs.org/api/https.html#https_https_request_options_callback