Articles of http

如何使用NodeJS中的http模块在同一端口上打开IPv4和IPv6套接字?

我正在运行以下的NodeJS服务器代码: var express = require('express'); var path = require('path'); var fs = require('fs'); var bodyParser = require('body-parser'); var http = require('http'); var ejs = require('ejs'); var app = express(); //configure the app app.set('port', process.env.PORT || 3000); // set the view engine to ejs app.set('view engine', 'ejs'); app.use(bodyParser.raw()); app.use(bodyParser.urlencoded({ extended: true })); app.use(function(req, res, next) { […]

使用server.listen()处理错误(如EADDRINUSE)

我一直困惑/烦恼, server.listen()不采取错误优先callback: server.listen(port, function(){ // the first argument is *not* a potential error }); 一定是一个艰难的devise决定,不要将错误传递给listen()。 看来我们应该在这里处理错误: server.on('error', (e) => { if (e.code === 'EADDRINUSE') { console.log('Address in use, retrying…'); } }); 但我担心的是, server.on('error' )可能会触发多次,而不仅仅是当服务器启动。 如果EADDRINUSEtypes的错误被引发并返回到server.listen()callbackEADDRINUSE将会更加方便。 有一些我可以用来传回错误的模式,如下所示: exports.startServer = function(data, cb){ server.listen(data, cb); server.once('error', cb); }); 上面的代码是否安全,这样cb才会只发一次? 这不安全! 大声笑。 因为我们需要删除“错误”侦听器,如下所示: exports.startServer = function(data, cb){ let onError […]

发送一个http请求到一个graphql api时“parsingJSON的问题”

我试图发送一个HTTP请求到Githubs graphql API(V4)。 我的猜测是我的查询格式是错误的。 下面的代码用于向api发送POST请求。 app.get('/fetch-data', function(req, res, next) { const access_token = settings.dev.TOKEN; const query = {query: { viewer: { 'login': 'muckbuck' } }}; const options = { uri: 'https://api.github.com/graphql', method: 'POST', headers: { 'Accept': 'application/json', 'Authorization': "Bearer " + access_token, 'User-Agent': 'request', 'contentType': "application/graphql", }, data: query }; function callback(error, response, body) { […]

快速/节点中的阻塞问题

我在node.js中使用express了一些阻塞问题。 目前,我现在有这个代码: router.get('/Hello', function(req, res, next) { (async ()=>{ try{ await api.connect(); let result=await api.HandleSomethins(); await api.disconnect(); }catch(err){ console.log(err); } })(); return res.status(json(result)); }); 上面的代码没有问题,我只是使用async / await来同步一些繁重的加载过程。 然后我得到了一个情况如下: 1.UserA使用这个URL来连接我的node.js,而UserA正在等待响应。 2.UserB也在这个时候连接,所以node.js不能立即处理UserB的请求。 (注意)。我需要发送回应到用户客户端(iOS / Android)。 也许节点服务器将得到UserC,D等…在同一时间。 我该怎么办才能解决这个问题呢? child_proess? 簇? 或者是其他东西?

我无法在节点中发出Web请求

我正在做一个简单的Http请求到谷歌的主页,而不是在控制台中logging数据显示此错误 错误:连接ETIMEDOUT 172.217.26.163:80 此外,我试图向谷歌的地理位置API请求,也没有得到我的任何数据。 这是我的代码(Google的主页版本) const http = require('http'); let req = http.request('http://www.google.co.uk', function(response){ console.log(response.statusCode); response.pipe(process.stdout); }); req.end(); 我也在代理服务器后面,可能是因为代理服务器?如果是,我该如何在node.js本身设置一个代理服务器。 我已经为npm完成了。

ExpressJS + NodeJS服务器不会提供CSS文件

我试图托pipe我自己的networking服务器,所以我redirect到我的电脑从域的stream量。 交通成功到达我的电脑和网站正在显示,除了ExpressJS不服务唯一的CSS文件,所以我的网站上的内容是因为它没有风格的所有地方。 在控制台中可以看到CSS文件失败的GET: resource: net::ERR_CONNECTION_TIMED_OUT xxx.xx.xx.xxx/styles.176e4d821cc3a21887b2.bundle.css Failed to load 仔细查看错误,我们发现它是唯一失败的文件,即使所有文件与您在下一张图片上看到的都是相同的物理目录: 我正在使用Angular,这是我的dist部署文件夹,你可以看到CSS文件与JS文件位于相同的位置,但只有CSS文件不能被GET'd: 在Express中,我有以下似乎服务于JS和HTML文件,但不是CSS文件: app.use(express.static(path.join(__dirname, '/'))); 此外,一切工作完美的本地主机,它的唯一的stream量redirect从我的.com网站,该网站未能获得的CSS文件。

如何在本地运行的Web服务之间进行通信

我有一些只能通过API网关服务器调用的后端服务。 后端服务在Spring Rest服务中,API GateWay是一个节点服务器。这两个服务器在不同的端口(后端:8080,节点:3000)本地运行。 我如何向我的节点服务器请求后端服务?

错误:连接ETIMEDOUT,Node js如何在本地主机API之间进行通信

我有一些后端服务,正在监听端口8080.而我有另一个节点js API在本地端口上监听端口3000。 我怎样才能从节点服务器到后端API? 这是我的节点js代码: router.post('/', function(req, res, next) { console.log('got validate request'); var options = { host:'localhost', port:8080, path:'/***/getservice', method:'GET' } http.request(options, function (response) { console.log('response:', response); // Print the error if one occurred res.json(response); res.end(); }); }); 上面的代码会导致错误:连接ETIMEDOUT。

使用http.request获取数据的特定部分

我想要得到使用http.request得到的响应数据的特定部分。 我有一个50 MB的zip文件我想要asynchronous使用5请求获取数据,使下载更快的url。 我的计划是简单的要求1将得到0-10mb的数据,而请求2得到11-20mb等。 有没有办法在节点js中做到这一点。 任何帮助将不胜感激。 先谢谢了

无法使用nodejs中的https连接套接字

在使用nodejs开发一个聊天应用程序的时候,我试图通过使用http命名空间的帮助来连接套接字,这是完全正常的。虽然我使用https运行相同的应用程序,但是没有连接到套接字代码。 服务器 require('./libs/socketioCode.js').sockets(https); var options = { key: fs.readFileSync('privkey.pem'), cert: fs.readFileSync('cert.pem') }; var server = http.createServer(app).listen(3000); var server1 = https.createServer(options, app).listen(3443); var io = require('socket.io').listen(server1); sockets module.exports.sockets = function(https){ io = socketio.listen(https); 我试过这个代码使用很多方法,但我failed.i得到错误,如GET /socket.io/?EIO=2&transport=polling&t=1505985336768-986 200 17.325 ms – 1454 Page Not Found 。提前GET /socket.io/?EIO=2&transport=polling&t=1505985336768-986 200 17.325 ms – 1454 Page Not Found 。