Articles of 获取

3个请求函数的数组 – 如何仅当第一个函数的响应包含string时调用第二个函数? – 节点JS

我有一个3个函数的数组,使用节点提取从3个不同的API获取数据。 如果第一个函数的response.body包含“rejected”,我只想调用第二个和第三个函数。 我遇到的问题是所有的方法在从第一个接收到响应之前被调用。 const buyersList = [ { buyerName: 'ACME', buyerPrice: '100', buyerMethod: sellACME, }, { buyerName: 'ACME', buyerPrice: '60', buyerMethod: sellACME, }, { buyerName: 'ACME', buyerPrice: '20', buyerMethod: sellACME, }, { buyerName: 'ACME', buyerPrice: '2', buyerMethod: sellACME, }, ]; //fetch the data and parse function sellACME(url) { return fetch(url, { method: 'POST' }) .then(obj […]

node.js xmlhttp获取请求getaddrinfor ENOTFOUND错误

伸出手,看看有没有人能让我知道我的错在哪儿。 我是node.js的新手,在公司代理的背后,让我很难走上正轨。 尝试在node.js中使用GET方法创buildxmlhttprequest时,我收到下面的错误消息 。 我正在使用没有任何框架的纯JavaScript,从下面的代码可以看到。 Error:getaddrinfo ENOTFOUND xxx-api.xxx.com xxx-api.xxx.com :443 at errnoException (dns.js:28:10) at GetAddrInforReqWrap.onlookup [as incomplete] (dns.js:76:26) 图像显示错误 由于我在代理之后,我尝试了各种方法来使' npm install xxxx'工作。 最后,在Fiddler的 “规则”中设置“自动authentication” ,并改变npmconfiguration设置如下所示。 registry=http://registry.npmjs.org/ proxy=http://127.0.0.1:8888/ https-proxy=http://127.0.0.1:8888/ http-proxy=http://127.0.0.1:8888 strict-ssl=false 在这之后, npm install xmlhttprequest对我来说工作的很好。 所以我开始执行我的GET请求如下: function login() { return new Promise(function (resolve, reject) { var url = 'https://xxx-api.xxx.com/v1/login'; var method='GET'; var XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest; […]

表示路由器没有调用get空的obj返回请求

我正在调用从angular度4获得请求。 我已经使用expressjs路由器。 我得到的电话不来我的路由器function。 如果我使用一个虚拟身份证,它工作正常。 这是我的前端代码 getOnlineUser(){ console.log('nline –') return new Promise((resolve, reject) => { this.http.get(this.url+'/chat/getonlineusers') .map(res => res.json()) .subscribe(res => { resolve(res); }, (err) => { reject(err); }); }); } 这里是我的expressjs路由器代码 router.get('/getonlineusers', function(req, res, next) { console.log('here it is—+=============———- ') // the above console not working OnlineUsers.find({}, function (err, Users) { console.log(Users) if (err) return […]

抓取POST仅在Express API服务器React FrontEnd中返回_id对象

我试图做一个React-Node.js应用程序的实践。 我在发送POST请求时遇到了一个问题。 当我在App.js中获取POST请求时,它只返回id。 我预计它会返回3个更多的值。 当前对象 { _id: 5a046d52bb5d37063b3c8b21 } 理想的对象 {_id: "59e9fed60fe8bf0d7fd4ac6e", name: "recipe1", ingredients: "apple", descriptions: "cut an apple"} 我应该如何正确地将值添加到req.body? 我提到这个解决scheme使用反应js和expressionAPI服务器提取对象,但它不适用于我的应用程序。 index.js(node.js) const express = require('express'); const path = require('path'); const bodyParser = require('body-parser'); const app = express(); // Serve static files from the React app app.use(express.static(path.join(__dirname, 'client/build'))); app.use(bodyParser.urlencoded({ extended: true})); var db const […]

使用来自GET请求的数据而无需用户的页面重新加载

所以,这个主题是Node.js + express + ejs + socket.io + mongoose所有最新版本的单页网页应用程序。 让我们想象一下用户在他的浏览器的地址栏“www.app.com/ data ”中的input。 我想根据这个数据从db中获取响应,并把它发回给用户,并为他提供基本的“www.app.com”页面,并在其中执行db响应。 我很好奇两个select:什么是最好的方式来做到这一点与没有页面重新加载,例如,如果用户已经在网页上,我不想重新加载它 – 只是相应地改变数据库响应。 我可以从他的获取请求中获取这些数据: app.get('/:id', function (req, res) { console.log('got' + req.params.id); ///some db magic here… poof, response ready/// }) 但接下来我做了什么? 我正在考虑通过sockets.io发送响应,但是我怎么才能在不重新加载用户页面的情况下结束这个GET? 如果我必须发回一些东西,我可以通过ejs再次渲染这个页面来做出回应,但是当我重新加载的时候,我不能依靠sokets,cos。 你能解释我的困惑吗?

Nodejs Http请求没有响应

目前使用http GET到外部API。 当被单独调用时,响应是好的。 当放在for循环中时,有些请求似乎没有响应。 这是http GETfunction: function httpGetChunk(url, callback) { http.get(url, function(resp) { var body=''; resp.on('data', function(chunk) { body += chunk; //chunk too large from this response }); resp.on('end', function() { var data = JSON.parse(body); callback(data); }); resp.on("error", function(e) { console.log("Got error: " + e.message); }); }); } 当我在for循环中为5个不同的url调用GET函数时,我只能得到其中一些的响应。 经过几次,回应将来自被叫url的不同组合,但从来都不是。 任何见解? 编辑1:为了提供更多信息,我的for循环看起来像这样。 for (var i=0;i<5; […]

对蒸汽市场的GET请求错误

我试图做一个GET请求来获取蒸汽市场上的单个项目的物品价格信息。 这里是我正在使用的确切的angularJS脚本: <script> var app = angular.module('csgo', []); app.controller('MainCtrl', function($scope, $http) { $http.jsonp("http://steamcommunity.com/market/priceoverview/?currency=3&appid=730&market_hash_name=StatTrak%E2%84%A2%20P250%20%7C%20Steel%20Disruption%20%28Factory%20New%29").success(function(response) { $scope.values = response; console.log(response); }); }); </script> 当我尝试在浏览器中执行此操作时,我得到: Uncaught SyntaxError: Unexpected token : ?currency=3&appid=730&market_hash_name=StatTrak™ P250 | Steel Disruption (Factory New):1 在我的Chrome浏览器控制台中。 然后点击错误信息中的链接(?currency = 3&appid = 730&market_hash_name = StatTrak™P250 | Steel Disruption(Factory New):1) 这需要我的一条线是: {"success":true,"lowest_price":"1,09€ ","volume":"348","median_price":"1,01€ "} 所以我实际上得到的信息,但它给出了一个错误,并强调红色的JSON响应。 有人知道这个问题吗? 我使用nodejs,express和angular。 编辑: 我尝试了一个不同的url: […]

从Node.JS服务器应用程序中发出GET请求,并将其发送到React.JS客户端

所以我有一个Koa / Node JS简单的后端,只是为了向外部API发出一个GET请求,然后将响应体传递给我正在构build的React JS客户端应用程序。 我是Koa或任何节点的JS或服务器的新手,所以不能真正弄清楚如何。 像这样的东西: var koa = require('koa'); var app = koa(); app.use(function *(){ http.get({host: somehost, path: somepath}, function(response) { this.body = Here send to React Client } ) }); app.listen(3000); 编辑:使用ExpressJS的答案也是受欢迎的。

如何结束对npm oauth.get请求到TwitterstreamAPI的stream式响应?

如何停止对此获取请求的stream式响应? 起初,我使用npm twitter,在那里你有一个.destroy()方法来杀死stream,但是想更好地理解这个过程(node newb在这里),所以只使用npm oauth,然后是核心节点代码。 我无法在oauth的文档中find与twitter的.destroy()类似的方法。 stream = oauth.get('https://stream.twitter.com/1.1/statuses/filter.json?&track=meaningoflife', process.env.TWITTER_ACCESS_TOKEN_KEY, process.env.TWITTER_ACCESS_TOKEN_SECRET); stream.end(); stream.addListener('response', function(twitResponse){ twitResponse.addListener('data', function(data){ //consume stream here }); }); 这工作正常,stream如预期地进来。 closures它是唯一的问题。 非常感谢!

错误:连接ECONNREFUSED node.js https.get请求

我在一个小testing节点项目中运行以下内容。 var https = require('https'); var request = https.get('https://example.com/script.json', function(response){ console.dir(response); }); request.on('error', function(){ console.log(err); }); 当我尝试console.dir的响应,我得到以下错误。 throw er; // Unhandles 'error' event Error: connect ECONNREFUSED xxx.xx.xxx.xx:xxx 这是一个简单的获取请求到外部服务器上的JSON文件。 我知道该文件存在,所以我不知道为什么我得到上述错误。 该文件可以在浏览器中运行,不需要validation。 更新 :我编辑的代码。 创造了一个承诺,并添加了一个.on('error'…来解决任何问题。 现在输出如下: ( [Error: connect ECONNREFUSED xxx.xx.xxx.xx:xxx] code: 'ECONNREFUSED', errno: 'ECONNREFUSED', syscall: 'connect', address: 'xxx.xxx.xxx.xxx', port: 443 )