Articles of http

获取在Express中请求路由的域

如果我有这个客户端应用程序运行在端口3000上,并且在我的API中build立在ExpressJS之上,在端口8080上运行,我怎么知道请求是在localhost:3000上发起的呢? 我听说有人在用: req.get('host') //or origin req.headers.host //or origin origin不存在,主机返回localhost:8080 ,即服务器端。 我想要客户的地址。 为什么在ExpressJS上获取这些信息非常困难? 任何人都知道我该怎么做?

expression和压缩,找不到我所犯的错误:-(

我找不到为什么我无法压缩我的内容。 我尝试了很多方法,但是当我在静态页面或基本本地内容(/)上检查curl(curl -I -H'Accept -Encoding: gzip'http:// localhost:8080 / free.html )时,find任何方式来压缩我的内容 我做错了什么? 这是我的代码: var express = require('express'); var compression = require('compression'); var morgan = require('morgan'); var favicon = require('serve-favicon'); var app = express(); app.use(compression({ filter: function () { return true; } })); app.use(morgan('combined')); app.use(favicon(__dirname + '/public/favicon.ico')); app.use(express.static(__dirname + '/public')); app.get('/', function(req, res) { res.setHeader('Content-Type', 'text/plain'); res.end('Vous […]

如何使用node.js定制自定义协议/scheme的路由?

我放弃了互联网,但没有find任何关于如何使用node.js自定义scheme(my-app://)创build路由的好资源。 严格来说,它不是真正的自定义协议,它将是http,但与另一种scheme一起服务。 我怎样才能做到这一点? 我可以安装任何npm软件包。

Koajs和curl与内容编码:gzip,放气

我正在寻找客户端(使用curl)和Koajs服务器与内容编码之间交换数据的简单示例:gzip,deflate。 更多细节:客户端有日志文件。 客户端压缩日志文件并将日志文件发送到服务器。 服务器解压日志文件并获取内容。 请给我curl命令和Koajs代码。 谢谢。

是否有可能在node.js请求中设置无限超时?

我正在使用'请求'node.js模块( https://github.com/request/request )发送请求到另一个服务。 有时需要发送请求并无限期地等待响应,因为发送请求的服务缓慢。 可以为请求设置“超时”属性,通过这种方式,您将覆盖读取和连接超时的默认值: timeout – 整数,包含等待服务器发送响应头(并启动响应正文)的毫秒数,然后中止请求。 请注意,如果无法build立底层的TCP连接,OS范围的TCP连接超时将会取消超时选项(Linux中的默认值可以在20-120秒之间)。 但是,我们可以设置什么值使这个超时无限?

通过节点stream式传输连续的HTTP响应

我试图作为客户端和使用NodeJS服务器的IP摄像机之间的代理。 当我请求来自相机的实时stream时,它响应 HTTP/1.0 200 OK Content-Type: Application/octet-stream 随后是连续的数据stream。 如果我在Chrome中打开相机stream,它会启动一个永不停止的下载,并启动一个连续的响应。 Node似乎是缓冲来自摄像机的响应,并且每次都通过它的HTTPparsing器parsing它。 这是第一次正常工作,因为它有正确的标题,但它的错误与第二个数据缓冲区 HPE_INVALID_HEADER_TOKEN 有人可以请帮忙解释为什么发生这种情况? 这是一个连续的数据stream,为什么它试图parsing第二个缓冲区的HTTP头? 我不确定是否有我缺less的选项,或者我的相机没有正确遵循HTTP规范。 编辑:示例代码 const options = { family: 4, headers: { Authorization: 'Basic ' + base64EncodedAuth, }, host: '192.168.1.131', method: 'GET', path: '/cgi-bin/realmonitor.cgi?action=getStream&channel=1&subtype=0', port: 80, protocol:'http:', }; const req = http.request(options, (res) => { console.log(`STATUS: ${res.statusCode}`); console.log(`HEADERS: ${JSON.stringify(res.headers)}`); res.on('data', (chunk) => { […]

使用node.js进行Http授权

我以前的server.js是这样的:运行服务器后,我可以看到我的index.html var connect = require('connect'); var serveStatic = require('serve-static'); connect().use(serveStatic(__dirname)).listen(5000, '192.168.xx.xx', function(){ console.log('Server running on 5000'); }); 我想创buildhttplogin名和密码来保护网站,所以我在网上find了http模块的信息:如果我把正确的login名和密码,我可以看到祝贺信息: var http = require('http'); var server = http.createServer(function(req, res) { // console.log(req); // debug dump the request // If they pass in a basic auth credential it'll be in a header called "Authorization" (note NodeJS lowercases the […]

Nodejs HTTP / 1.1pipe道支持

我几乎是nodejs的新手。 我正在研究一个小的nodejs微服务,并且运行良好。 但是根据最近的要求,这个服务需要支持HTTP / 1.1pipe道。 但我没有find在nodejs文档,如何启用/支持。 请指导我find合适的doc / module / resource来实现HTTP / 1.1pipe道。 谢谢。

从Vue.JS发布到Express路由器

我试图从一个vue.js前端数据发布到我的express / node后端。 POST似乎通过,但在后端我只是得到一个未定义的空数组。 前端: main.js var app = new Vue({ el: '#app', data: { guests: [], code: '', showGuests: true }, methods: { saveGuests: function() { $.ajax({ type: "POST", url: '/api/rsvp/' + this.code, data: this.guests, success: function() { this.showGuests = false; // do more stuff to handle submission }, dataType: 'json' }); }, … […]

从Android应用程序发送到nodejs服务器通过HTTP发送后,我的JSON看起来不同

当我试图通过HTTP发送一个JSON作为一个string到一个nodejs服务器,当我试图loggingrequest.body它看起来不同,我不能访问任何领域。 我的类发送请求到服务器: public class SendData extends AsyncTask<String, Void, String> { @Override protected String doInBackground(String… strings) { String data = ""; HttpURLConnection httpURLConnection = null; try{ httpURLConnection = (HttpURLConnection)new URL(strings[0]).openConnection(); httpURLConnection.setRequestMethod("POST"); httpURLConnection.setDoOutput(true); DataOutputStream wr = new DataOutputStream(httpURLConnection.getOutputStream()); wr.writeBytes(strings[1]); wr.flush(); wr.close(); InputStreamReader inputStreamReader = new InputStreamReader(httpURLConnection.getInputStream()); int inputStreamData = inputStreamReader.read(); while (inputStreamData != -1){ char current = […]