如何在Node.js Lambda中使用请求模块

西蒙·埃内斯托·卡德纳斯·扎拉特

我正在尝试将AWS Lambda中的request模块用于Node.js,但效果不佳。

这是我到目前为止拥有的功能:

const request = require('request');
url = 'https://www.google.com'

exports.handler = async (event) => {

    request(url, (error,res,body) => {
        console.log(error);    //this is not printing
        console.log(res);      //this is not printing
        console.log(body);     //this is not printing
        console.log('Come on!!'); //this is not printing
    });

    console.log(url); //This is the only thing printing, you can see in the Function Logs below, second line.

};

这是我得到的回应:

Response:
null

Request ID:
"3e46f401-f26d-435d-90be-ac848c6c3a39"

Function Logs:
START RequestId: 3e46f401-f26d-435d-90be-ac848c6c3a39 Version: $LATEST
2019-10-14T08:06:23.755Z    3e46f401-f26d-435d-90be-ac848c6c3a39    INFO    https://www.google.com
END RequestId: 3e46f401-f26d-435d-90be-ac848c6c3a39
REPORT RequestId: 3e46f401-f26d-435d-90be-ac848c6c3a39  Duration: 368.93 ms Billed Duration: 400 ms Memory Size: 128 MB Max Memory Used: 92 MB  Init Duration: 461.54 ms

我想知道为什么我没有从requests方法中得到任何响应。我在笔记本电脑上尝试过,并且处理程序外部的部分代码工作正常。

我将项目作为zip文件上传,因此带有请求模块的node_modules文件夹确实存在。我注意到使用http模块而不是request的一些解决方案,但是我想先了解为什么它不起作用,然后再转向其他解决方案。

甲酮

您的函数被标记为async,但是您正在使用回调来处理响应。所以什么都没有awaited发生。

这意味着您的函数将返回一个已兑现的隐含承诺。这使lambda停止。因此,要么:

A)使用async / await编写您的代码,这可能需要request-promise或类似的方法:

exports.handler = async event => {
    const res = await promisifiedRequest(url);
    console.log(res.statusCode);
    console.log(url);
};

要么

B)将函数从转换async/await为使用回调,如下所示:

exports.handler = (event, context, callback) => {
    const res = request(url, (error, res, body) => {
        console.log('Come on!!');
        callback(null, res.statusCode);
    });
    console.log(url);
};

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Node.js中使用htpasswd验证请求

来自分类Dev

如何在node.js上使用请求模块设置POST编码?

来自分类Dev

如何在Node JS FS模块中使用Typescript Async / waiting with promise

来自分类Dev

如何在某些文件中使用此node.js模块

来自分类Dev

如何在Node.js中使用repl获取模块功能的详细信息?

来自分类Dev

如何在请求中使用cookie(request,tough-cookie,node.js)

来自分类Dev

如何在node.js中使用多个请求处理程序?

来自分类Dev

如何在请求中使用cookie(request,tough-cookie,node.js)

来自分类Dev

如何在Node.js中使用没有jQuery Ajax请求内的回调?

来自分类Dev

使用请求模块抓取Node.js

来自分类Dev

使用请求模块的Node.JS代理

来自分类Dev

如何在router.post请求中使用router.get请求的差异路由node.js

来自分类Dev

如何在Node.js中使用XHR API?

来自分类Dev

如何在HTML中使用node.js库?

来自分类Dev

如何在sails.js中使用node-inspector?

来自分类Dev

node.js:如何在koa中使用护照

来自分类Dev

如何在Node.js中使用Swig输出JSON

来自分类Dev

如何在Node JS中使用事件?

来自分类Dev

如何在node.js中使用marklogic查询结果

来自分类Dev

如何在PyCharm中使用Intellij Node.js插件?

来自分类Dev

如何在Node.JS中使用SQL

来自分类Dev

如何在node.js中使用token(post)Mysql?

来自分类Dev

如何在Node.js中使用useMasterKey进行解析?

来自分类Dev

如何在node.js中使用window.sessionstorage

来自分类Dev

如何在Node.js中使用OpenVPN?

来自分类Dev

如何在Node JS中使用嵌套映射

来自分类Dev

如何在Node.js中使用多线程或进程

来自分类Dev

如何在Google Apps脚本中使用Node js(Buffer)

来自分类Dev

如何在node.js中使用Error.captureStackTrace

Related 相关文章

热门标签

归档