Articles of http

如何将请求响应传递给另一个请求?

在ExpressJS应用程序中使用request-promise模块,我想提出两个请求,但是我需要从第一个请求中得到的响应数据传递给第二个请求。 我之后的一个例子是, const options = { url: 'http://api.example.com/v1/token', method: 'GET' }; request(options).then((response) => { request({ url: 'http://api.example.com/v1/user', method: 'POST', data: { token: response.token } }).then((final_response) => { res.send(final_response); }); }); 我已经省略了error handling以保持示例简短。 我的兴趣是将一个请求的响应传递给另一个请求的技术。

用于数据保存的Node.js压缩代理

我正在寻找Node.js中的代理服务器,它压缩了我通过类似于Google的数据保护程序扩展的互联网接收的数据。 我想让服务器压缩使用互联网的计算机中的每个进程的数据。 我问这是因为我想减less我的数据使用量,这样我就可以减less我的互联网成本。 我不知道这是否可能。 Google的数据保护程序仅压缩http请求。 我希望服务器也压缩https。 所以基本上,如果我请求一个网页,那么它应该通过服务器,服务器请求相同的网页,压缩它,然后发回我。 有关如何在node.js中执行此操作的任何想法 欢迎任何forms的build议。 我听说过Gzip,但它是专门针对您自己创build的网站。 我希望服务器坐在我和所请求的网站之间,并压缩数据。 如果有可能,我可以达到高压缩比吗? 谢谢

HTTP POST v / s HTTP GET

我想从前端(Angular)到后端进行数据库查询。 但是我需要发送很多参数。 据我所知,如果我们不做任何数据库更改,最好使用GET,因为它使用caching的条目。 如果需要在服务器/数据库上进行更改,则应使用POST。 但是如果我想发送很多参数(一些是序列化的对象)并且不做任何服务器端改变,那么在这种情况下使用POST请求是否可以,并且将所有参数embedded到POST正文中而不是发送巨大的URL编码的GET请求?

REST | 智威汤逊| 身份validation:如何validation安全资源的权限

基于令牌的身份validation:智威汤逊? 检查。 GET /items/:id …怎么样? 这是一个小问题,但可能是一个很大的答案,因为我对这个有点新… 一旦我为客户提供了一个JWT,他们希望获得一个资源 – validation客户端的逻辑stream程是什么样的? 换句话说,我有一个JWT 有效载荷如… { … "sub": user.id … } …和客户端需要访问项目 998 /api/items/:id … 我目前的做法如下所示。 // ItemsController.lang | 'GET /api/items/:id' var userId = jwt.decode(token).sub; var isValid = checkUserIdInDatabase(userId); var secureResource = ORM.findOne({ user: userId, id: request.itemId }); response.send(secureResource); 与此同时,当客户注册/进入时,我向他们提供了一个看起来像这样的回应… { user: { id: 998, email: 'no@username.com', preferences: […] […]

节点HTTPparsing

所以你可以像这样做一个节点的HTTP GET请求: var http = require('http'); var options = { host: 'stackoverflow.com', }; var req = http.get(options, function(res) { console.log('STATUS: ' + res.statusCode); console.log('HEADERS: ' + JSON.stringify(res.headers)); }); req.on('error', function(e) { console.log('ERROR: ' + e.message); }); 我想看看http.get将要使用哪个IP地址? 如果给定的DNSparsing为多个IP,节点HTTP lib如何确定使用哪个IP地址? 通过多个IP我的意思是这样的: dig +short stackoverflow.com 151.101.129.69 151.101.1.69 151.101.193.69 151.101.65.6 节点请求库不同吗?

是唯一的方法来给客户从服务器执行一些js代码的指令?

或换句话说: 如何发送一个客户端的消息从服务器执行一些页面上的JS代码? 这不是一个Ajax请求,它是一个普通的GET浏览器服务器请求。 比方说,我在我的应用程序的前端JavaScript文件中有这样的代码: if( condition_1 ) { FB.getLoginStatus(…) } else if( condition_2 ) { PayPal.getLoginStatus(…) } else { do smth else… } 所以我想发送那些condition_1或者condition_2指令以及服务器的响应。 这不是Ajax请求。 这是从浏览器到服务器的简单的GET请求。 目前只有cookies出现在我的脑海里。 1)服务器从浏览器收到GET请求。 2)我读了cookies。 如果没有一定的cookie伴随着请求,我设置condition_1 ,否则我设置condition_2 cookie: if(req.cookies["foo"] == "foo") { res.cookies("foo", "condition_1") .status(200) .send() .end(); } else if(req.cookies["foo"] == "bar") { res.cookies("foo", "condition_2") .status(200) .send() .end(); } 3)服务器发回一个200响应给客户端。 现在在浏览器中我检查这些cookie(为了简单起见,我做了document.cookie.foo […]

Node.JS – 在中间件中获取最终发送的数据

是否有可能在中间件中获取刚刚由我的API发送的数据? 例如,我有一个nodejs服务器与这个中间件: var middleware = function(req, res, next) { res.on('finish', function() { console.log(res.statusCode); // display 200 console.log(res.body); // display empty data }); next(); }; 而我的API: app.get('/url', function(req, res) { res.status(200).json({name:'john'}).end(); }); 但是在我的中间件中,我只能得到statusCode'200',而不是对象{name:'john'} 。 任何人都可以帮助我? 谢谢。

使用节点向第三方Apis节stream请求

所以我正在build立一个空间地图并把关系转换成一个mongodb。 在这种情况下,我有地区,星座和太阳系。 一个地区可以有多个星座,每个星座可以有多个太阳系。 我有一个允许抓取一些这样的API,但它需要每个项目的API调用。 带来我正在做的问题~6000每天通话。 下面是第三方API标准: 通用速率限制:每秒150个请求 突发尺寸:400 并发连接:20 这里是我的db模型: 地区型号: var mongoose = require('mongoose'); var Schema = mongoose.Schema; //Schema Definition var regionSchema = new Schema({ _id: Number, name: String, description: String, href: String, constellations: [{ type: Schema.ObjectId, ref: 'Constellation' }]//Reference }); //Expose (export) the model module.exports = mongoose.model('Region', regionSchema); 星座模式: var mongoose = require('mongoose'); […]

如何使用Elastic Load Balancer和Node.js(HTTP和TCP)正确运行Amazon EC2?

我的目标 :运行2台服务器,用于我的Web应用程序的HTTP服务器和用于处理我的TCP客户端的TCP服务器,并使用SSL。 我希望ELB为HTTP处理SSL和我的应用程序来处理TCP服务器的SSL连接 (我只使用TCP服务器的自签名证书), 这是我迄今为止 我的HTTP服务器是一个带有Express的Node.js HTTP服务器。 我想encryption所有的连接,发现我可以通过亚马逊的证书pipe理器获得一个免费的SSL证书。 但是,我发现我需要Elastic Load Balancer。 所以我决定一个,比我预料的更痛苦。 我在为Web应用程序工作时遇到问题。 这个想法是,负载平衡器终止来自客户端的所有SSL连接,并将未encryption的数据发送到80以上的后端EC2机器.jar HTTP.jsp服务器正在侦听80。 这是我的HTTP服务器文件app.js var express = require('express'); var http = require('http'); var servestatic = require('serve-static'); var app = express(); var bodyParser = require('body-parser'); var flash = require('connect-flash'); var morgan = require('morgan'); var cookieParser = require('cookie-parser'); var session = require('express-session'); var cacheResponseDirective = […]

是否有可能在nodejs中创build一个自定义的http请求方法

我正在使用npm请求从节点js调用外部服务,它的工作,但是有可能在节点中创build一个自定义的请求方法,并在npm请求中使用它。