Tag: 响应

NodeJS console.log工作,但response.write不

我是NodeJS的新手。 我正在读这本书来学习它。 我在其中一个请求处理程序模块中使用下面的代码。 基本上,当我收到来自浏览器的请求时,我发送一个调用这个函数,并获取屏幕上显示的窗口中的“DIR”命令的内容。 index.js文件是我作为webapp运行的文件 这是index.js var server = require("./server.js"); var router = require("./router.js"); var requestHandlers = require("./requestHandlers"); var handle = {}; handle["/"] = requestHandlers.start; handle["/start"] = requestHandlers.start; handle["/upload"] = requestHandlers.upload; server.start(router.route, handle); 这是server.js服务器文件将请求发送到路由器 var http = require("http"); var url = require("url"); function start(route, handle) { function onRequest(request, response) { //console.log("Request recieved!"); var pathname = […]

Node.js套接字pipe道方法不会pipe最后一个数据包到http响应

我有使用Express作为networking应用程序的节点服务器。 此服务器与另一端TCP服务器创build一个tcp套接字连接。 我正在尝试将tcp数据传递给用户http响应。 它工作正常,但最后的tcp数据包没有pipe道http响应。 所以,下载的网页浏览器下载状态为99.9%。 我的源代码如下。 任何人都可以帮我解决这个问题? 提前致谢。 app.get('/download/*', function(req, res){ var tcpClient = new net.Socket(); tcpClient.connect(port, ip, function() { // some logic }); tcpClient.on('data', function(data) { /* skip … */ tcpClient.pipe(res); // This method is called once in the 'data' event loop /* skip … */ }); tcpClient.on('close', function() { clog.debug('Connection closed.'); }); tcpClient.on('end', […]

nodejs http response.write:可能是内存不足吗?

如果我有以下代码每10毫秒发送一次数据到客户端: setInterval(function() { res.write(somedata); }, 10ms); 如果客户端收到数据的速度很慢,会发生什么? 请问服务器出现内存不足的错误? 编辑:实际上连接保持活着,服务器无休止地发送jpeg数据(HTTP多部分/ x混合replace标题+正文+标题+正文…..) 由于node.js response.write是asynchronous的, 所以一些用户猜测它可能会在内部缓冲区中存储数据,并等到低层告诉它可以发送, 所以内部缓冲区会增长,对吗? 如果我是对的,那么如何解决呢? 问题是node.js没有通知我什么时候发送一个写入数据。 换句话说,我不能以这种方式告诉用户在理论上没有“内存不足”的风险,以及如何解决这个问题。 更新:通过user568109给出的关键字“drain”事件,我研究了node.js的来源,得出结论: 这真的会造成“内存不足”的错误。 我应该检查response.write(…)=== false的返回值,然后处理响应的“漏”事件。 http.js: OutgoingMessage.prototype._buffer = function(data, encoding) { this.output.push(data); //————-No check here, will cause "out-of-memory" this.outputEncodings.push(encoding); return false; }; OutgoingMessage.prototype._writeRaw = function(data, encoding) { //this will be called by resonse.write if (data.length === 0) { return […]

节点js找不到响应主体http createserver

我在节点上运行这个脚本: var http = require('http'); var server = http.createServer(function (request, response) { response.writeHead(200, { "Content-Type": "text/plain" }); response.write('Hello World\n'); response.end('Goodbye World', 'utf8', function() {console.log(response.body); }); server.listen(8000); console.log('running'); 当我在Chrome中加载页面(localhost:8000)时,我看到: 你好,世界 世界再见 到目前为止这么好,但我试图了解响应对象中的数据('Hello World / nGoodbyeWorld')是什么。 这就是为什么我有'console.log(response.body)'作为response.end()中的callback(节点http文档说callback将在响应完成stream时执行)。 但是console.log只是给了'undefined'。 当我console.log整个响应对象它的console.logs响应对象好,但我看不到任何数据或身体在那里,即使它有'hasBody:true'。 所以问题是: a)有没有回应? 我认为必须有一个,否则什么都不会在浏览器窗口中显示。 b)如果是这样,我怎样才能访问它,为什么我的方式不工作? 我能find的最接近的答案是这样的: nodejs http.get响应中的body在哪里? ,但我尝试添加 response.on('data', function(chunk) { body += chunk; }); response.on('end', function() { […]

快递4,如何查看所有正在发送的数据

大家好我使用快递4与cookie分析器。 由于某些原因,Cookie正在res对象中设置,但并不真正存储在浏览器中。 我想查看所有即将通过的cookie(当前response对象的所有cookie)。 任何想法如何让他们?

在node.js CLI中获取浏览器响应或callback

当用户第一次使用它时,Snyk会要求authentication。 它看起来像这样: 用户在cmd中键入snyk auth 。 标签在浏览器中打开并login页面。 login。 Snyk收到我已经login的响应,然后进行下一步。 1 – 3对我来说是显而易见的。 但是我不明白节点是如何知道我已经login的。它与HTTP头有关,但我仍然不知道它在代码中的样子。 我试图在cli / commands / auth.js中find我的答案,但代码对我来说太复杂了。

你能发送来自另一台服务器的HTTP响应吗?

也许愚蠢的问题。 最近我一直在玩Node.js,就像设置服务器和发出请求是多么容易。我还没有尝试过,但想知道如何将数据从一个请求转发到另一个服务器,并且第二台服务器向客户端发送响应。 这可能吗? 即 CLIENTX – > SERVER A – > SERVER B – > CLIENT X 最令我困惑的是如何发送给同一个客户端? 这个信息应该出现在请求头部,虽然不是? 是否将这些信息转发给SERVER B? 我处于一种情况,我正在接受Node.js服务器上的请求,并希望将一些数据转发给我创build的Laravel API,并将响应发送给客户端表单。 欣赏你的答案, 马特

HTTP响应string末尾的奇怪字符

我正在使用下面的nodejs包生成一些简单的restful API。 https://github.com/restify/node-restify 但是在响应json结尾处我得到了一个奇怪的字符。 服务器端代码与以上链接提供的相同。 我怎样才能去除%?

如何有可变数量的蓝鸟承诺? (的NodeJS)

我有一个空的文件数组。 let arrayOfDocuments = []; 我想调用http请求(使用superagent)来下载一个文本文件,并将其内容放入我的arrayOfDocuments。 request.get('docs.google.com/document/d/SOME_FILE_NAME').then((res) => { arrayOfDocuments.push(res.text); }); 我得到的那部分,但这是棘手的部分。 我想把它放在一个for循环中,并在for循环之后做一些事情。 如此: for (let i = 0; i < numOfLinks; i++) { // send the http requests as above } //do stuff here but only after the above for loop is finished. 如果循环结束,我只能做最后一行? 现在我的程序运行的方式,for循环之后的代码在http请求得到响应之前运行并完成。 我认为有一种方法可以使用蓝鸟诺言做到这一点,但我不确定。 谢谢!

如何修改服务器的相对url作为回应

我使用http.request一个URL,并将响应放在Nodejs中的一个新的响应。 但是http请求的响应里面有一些服务器的相对url,对于链接,资源等 我怎样才能使相对url成为一个完整的url,然后我就可以在nodejs响应中显示整个内容。 谢谢。