Articles of requestjs

使用请求包在nodejs中查找和分析html的最佳方法

在我的实验中,我注意到,我无法使用htmlparser或htmlparser2软件包parsing从request.get收到的文本。 与https.request相比,返回的string是不一样的,线条明智的。 我正在掠夺一个人类可读的页面,http.request处理程序能够聚合数据以匹配服务器响应的输出。 但与request.get我收到一个没有换行符的回应。 因此,我只能假设我没有使用不受requestjs支持的parsing包,并且导致问题: 实际parsing从reqeust.get和requst.post调用收到的HTML的最好方法是什么? 谢谢。

将requestjs响应分配给variables

如何将一个request.get('http://someurl/file.json', function(err, response, body) {})的request.get('http://someurl/file.json', function(err, response, body) {})赋值给一个variables? 例如: file.json { "Name1": { "prop": "value" }, "Name2": { "prop": "value" } } app.js var json = request.get(http://localhost/file.json); json = JSON.parse(json); console.log(json["Name1"].prop); 提前致谢 :)

在Node.js中将PNG从GET请求转换为可读stream

我正在尝试制作一个可以发送猫照片的Facebook聊天机器人。 我使用RESTful API来获取猫图片。 他们是原始PNG返回。 接下来最后一步是将该图像转换为可读stream,以便Facebook Chat API可以将其作为附件发送。 我使用request.js来抓取图像。 请求的文档只提到保存图像作为文件和读取文件到stream.Readable 。 我不知道是否有办法绕过这个临时文件,并将图像直接传输到Facebook Chat API。 这是我的代码到目前为止: var request = require("request"); var stream = require("stream"); module.exports = function getCatPicture(api, threadID, body) { var options = { url: 'http://thecatapi.com/api/images/get?type=png', encoding: 'base64' } var picStream = new stream.Readable; request.get(options, function (error, response, body) { picStream.push(body, 'base64'); var catPic = { […]

OpenShift:来自nodejs的多个发布请求被触发

我正在尝试使用nodejs实例的OpenShift云服务器。 我正在尝试执行一个POST请求到oneSignal API。 POST成功,但是OneSignal发送4个通知给单个POST。 我想我已经分离出这个问题是与OpenShift服务器,因为当我在本地机器上运行下面的代码,我收到一个通知,但是当代码部署在OpenShift,我得到4通知。 以下是testing代码: var request = require('request'); function sendNotification() { var data = {}; data.headings = {"en": "Trial Push Heading"} data.contents = {"en": "Trial Push Contents"}; data.app_id = MY_APP_ID; data.included_segments = ["All"]; var headers = { "Content-Type": "application/json", "Authorization": "Basic "+ MY_AUTH_KEY }; var options = { url: "https://onesignal.com/api/v1/notifications", method: "POST", headers: […]

NodeJS脚本发生错误后,将不会再次启动。 AWS Lambda

我在nodejs4.x运行时有一个lambda函数。 如果我的脚本由于错误而停止执行,可以说我尝试获取未定义对象的.length ,那么我不能再次启动脚本。 它甚至不像脚本运行并遇到相同的错误,脚本不运行。 lambda处理函数从来没有被第二次调用。 这个lambda函数是Amazon Alexa的端点。 当我重新上传代码(一个zip文件),然后系统再次工作。 这是nodejs的一些行为? 脚本是否正在结束文件损坏,因此无法重新启动? 当服务器遇到错误时,我会Process exited before completing request此消息 然后随后的请求达到超时限制。 重要编辑我已经指出问题NPM请求。 该模块不完成加载即。 console.log('i see this message'); var request = require('request'); console.log('this never happens');

在request.pipe之前防止快速的body-parser移除主体

我正在尝试创build一个简单的快递中间件filter,它应该查看POST正文并确定是否应该将其传送到正确的服务器,或者是否被阻止。 如果我使用body-parser ,看起来我确实可以获得req.body ,但是当我将请求传递给另一个外部服务器时,它从请求中消失。 我试图解决这个问题的方法如下: //Router router.route('') .post(authController.isAuthenticated, urlHelper.bodyParser, //Without these two, everything pipes correctly urlHelper.filterBasedOnSomething, //Without these two, everything pipes correctly urlHelper.pipeToTrustedZone); 在urlHelper中: const filterBasedOnSomething = function (req, res, next) { if (req.body && req.body.something === 'some string' && req.body.somethingElse === 'some other value') { return res.status(403).send("You shall not pass"); } else { next(); […]

http请求函数不会返回结果

我正在build立一个Express.js的服务器,我想'GET'请求'/'返回一个函数的结果。 该函数正在从新闻API获取请求。 当我调用'/'时,函数被触发,结果('故事')被logging在控制台中,但是对'/''GET'请求的响应没有被发送。 我曾尝试将“返回”声明放在几个不同的地方,但仍然无效…任何想法都将得到巨大的赞赏! 谢谢! app.js var express = require('express'); var app = express(); var stories = require('./stories.js') app.get('/', function(req, res){ var returnedStories = stories.searchStories(); res.send(returnedStories); }) var server = app.listen(3000, function () { var host = server.address().address; var port = server.address().port; console.log('going live on port', host, port); }); stories.js var request = require('request'); function […]

通过requestJS POST请求发送JSON对象和图像文件的数组

我正在使用NODEjs构buildREST API,使用Express路由器和Multer中间件来处理多个主体数据和文件。 我的端点路由127.0.0.1/api/postData期望:带有字段的json数据,其中之一是json对象数组(我有嵌套mongoose模式)和2个命名图像(png / jpg)。 我需要通过cURL发送Post请求与以下5对象的数据结构: name String description String usersArray Array of json objects like: [{"id": "123"}, {"id": "456}] imgIcon Png/Image providing /path/to/imageIcon.png imgHeader Png/Image providing /path/to/imageHeader.png 任何想法如何写request.js节点http请求库的帮助下请求库?

为什么requestjs拒绝与Firefox一起使用的自签名SSL证书?

这是情况。 我创build了一个自签名CA证书,并用它来签署第二个证书,以便与https一起使用。 Web服务器是nginx做SSL终止和反向代理expressjs应用程序。 为了validation信任链是否正确,我在Firefox中安装了CA,并能够按预期方式通过https访问网站,而不会出现警告。 此外,我可以使用openssl x509 -in server.crt -text -noout来检查服务器的证书,我可以看到预期的发行者,特别是该主题的预期通用名称。 (注意:这里使用的通用名称是IP地址,以防可能造成麻烦。) 但是,当我尝试使用requestjs通过nodejs脚本访问服务器时,事情并不顺利。 在脚本中,使用如下代码加载CA证书: request.get({url: theUrl, ca: fs.readFileSync("./ca.crt")}, … 但是我得到这个错误(为了可读性破坏了行,原来是一行): Contacting doorman failed: Error: Hostname/IP doesn't match certificate's altnames: "IP: <redacted> is not in the cert's list: " 特别可疑的是,这似乎是说“证书清单”是空的。 在其他答案中,在选项中使用rejectUnauthorized: false已经被提出,但对于这个应用程序来说这不是一个好的select,因为我想要进行身份validation。 我怎样才能让requestjs / nodejs信任这个证书? 服务器证书的内容,由openssl x509 -text报告 Certificate: Data: Version: 1 (0x0) Serial Number: 3 (0x3) […]

recursion函数的callback

以下代码用于从我们的Web应用程序获取.zip文件。 该文件是通过安全地closures另一个应用程序然后进行压缩生成的,最后发送下载。 var dl = function() { request({ method: 'GET', uri: 'some_url', headers: { 'User-Agent': 'Scripted-Download' }, encoding: null, jar: true }, function(err, res, body) { if (err) throw(err) if (res.headers['content-type'] === 'application/zip;charset=utf-8') { process.stdout.write('\rDownloading file ..') var id = uuid.v4() , file = path.resolve(__dirname, '../../' + id + '.zip') fs.writeFile(file, body, function(err) { if […]