Tag: 连接

分组和pipe理node.js中间件

如果我已经制作了一些可以一起工作的中间件,那么分组和pipe理function的最佳约定是什么? 在我的server.js文件中,我目前刚刚通过app.use调用了一个又一个的app.use 。 但是,我发现,如果我的第一个数据没有产生任何数据,组中的后续数据就可以跳过了。 我想这最终是一个聚合,虽然我没有看到在其他项目中的任何例子。

处理从nodejs到mongo db的连接丢失

我试图得到“连接丢失”或类似的连接时,nodejs和mongodb服务器之间的连接丢失。 我使用本机驱动程序,并有以下代码 var mongo = require('mongodb'); var server = new mongo.Server('host', 'port', { auto_reconnect: true, socketOptions: { keepAlive: 10, connectTimeoutMS: 1000, socketTimeoutMS: 0 } }); var db = new mongo.Db( 'dbname', server, { w: 1, wtimeout: 1000, numberOfRetries: 100, auto_reconnect: true } ); db.on('close', function () { console.log('Error…close'); }); db.on('error', function (err) { console.log('Error…error', err); […]

具有自定义Http代理和Connect.js中间件的Node.js代理

我已经在Node中放置了一个代理服务器,它需要能够通过tls传输https请求,而且所有的工作。 使用以下两个包,这是非常容易设置: 代理 , HTTPS代理代理 。 我的问题是,我试图捕获HAR文件使用连接作为中间件层,我得到以下错误: _http_outgoing.js:357 throw new Error('Can\'t set headers after they are sent.'); ^ Error: Can't set headers after they are sent. at ServerResponse.OutgoingMessage.setHeader (_http_outgoing.js:357:11) at ServerResponse.writeHead (_http_server.js:180:21) at ClientRequest.<anonymous> (/…/node_modules/proxy/proxy.js:233:11) at emitOne (events.js:96:13) at ClientRequest.emit (events.js:188:7) at HTTPParser.parserOnIncomingClient [as onIncoming] (_http_client.js:473:21) at HTTPParser.parserOnHeadersComplete (_http_common.js:99:23) at Socket.socketOnData (_http_client.js:362:20) at emitOne (events.js:96:13) […]

奇怪的node.js错误:TypeError:Object#<Object> has no method'on'

我试图在node.js中运行一个简单的屏幕抓取应用程序。 代码发布在这里: https : //github.com/anismiles/jsdom-based-screen-scraper http://anismiles.wordpress.com/2010/11/29/node-js-and-jquery-to-scrape -websites / 服务器启动正常,但是当我运行一个查询时,我得到以下错误。 有谁知道这是为什么? TypeError: Object #<Object> has no method 'on' at Object.<anonymous> (/Users/avishai/Downloads/anismiles-jsdom-based-screen-scraper-f0c79d3/searcher-server.js:9:10) at param (/Users/avishai/.node_libraries/.npm/connect/0.5.10/package/lib/connect/middleware/router.js:146:21) at param (/Users/avishai/.node_libraries/.npm/connect/0.5.10/package/lib/connect/middleware/router.js:157:15) at pass (/Users/avishai/.node_libraries/.npm/connect/0.5.10/package/lib/connect/middleware/router.js:162:10) at Object.router [as handle] (/Users/avishai/.node_libraries/.npm/connect/0.5.10/package/lib/connect/middleware/router.js:168:6) at next (/Users/avishai/.node_libraries/.npm/connect/0.5.10/package/lib/connect/index.js:218:15) at Server.handle (/Users/avishai/.node_libraries/.npm/connect/0.5.10/package/lib/connect/index.js:231:3) at Server.emit (events.js:45:17) at HTTPParser.onIncoming (http.js:1078:12) at HTTPParser.onHeadersComplete (http.js:87:31) 似乎是抛出错误的function是: function books(app){ app.get('/:query', function(req, res, […]

使用redis的NodeJS – 用hiredis vs没有安装?

我将redis集成到我的NodeJS服务器应用程序中,并试图找出是否使用hiredis命令安装node_redis。 我假设安装它的选项不可用,如果它在某种程度上没有用处。 与此同时,node_redis(https://github.com/mranney/node_redis)的github页面清楚地表明,升级到nodeJS的较新版本可能会导致添加hiredis选项的问题。 有人可以列出增加雇佣与否的不成文的利弊吗? 在C库中有多less性能提升?

在Node.js / Express中连接中间件

以下是一个Node.js / Express Web服务器的简单示例: var express = require('express'); var app = express(); app.get('/*', function(req, res){ res.end('Hello, you requested ' + req.url + '.'); }); app.listen(3000); 运行时,请求http://localhost:3000/Hello-world将生成响应 Hello, you requested /Hello-world. 为了学习中间件,我想重新实现这个服务器,但是使用中间件来获取包含在单独函数中的“获取数据”,“处理数据”和“输出数据”。 我试图跟随,但是对于这个代码,一个请求http://localhost:3000/Hello-world没有给出任何回应。 只有app.get(..)代码似乎执行。 var express = require('express'); var app = express(); // Step 1: get input app.get('/*', function(req, res){ req['testing'] = req.url; }); // Step […]

Connect和Express utils

我是Node.js的新手 根据这个话题: 什么是Node.js的Connect,Express和“中间件”? 我了解到Connect是Express的一部分 我在代码中挖了一下,发现了两个非常有趣的文件: ./myProject/node_modules/express/lib/utils.js 和更好: ./myProject/node_modules/express/node_modules/connect/lib/utils.js 这两个文件充满了有用的function,我想知道如何正确调用它们。 到目前为止,在./myProject/app.js ,这就是我所做的: var express = require('express') , resource = require('express-resource') , mongoose = require('mongoose') , expresstUtils = require('./node_modules/express/lib/utils.js'); , connectUtils = require('./node_modules/express/node_modules/connect/lib/utils.js'); 但是我发现它有点笨拙,我的其他文件呢? 例如,这里是我的路线之一: myResources = app.resource( 'myresources', require('./routes/myresources.js')); 这里是myresources.js的内容: exports.index = function(req, res) { res.render('./myresources.jade', { title: 'My Resources' }); }; exports.show = function(req, res) […]

会话未定义 – 使用Connect-Redis / ExpressJS / Node

今天早上,我醒来发现Nodejitsu旋转出现以下错误: Warning: connection.session() MemoryStore is not designed for a production environment, as it will leak memory, and will not scale past a single process. '好吧!' 我想到了自己 – 然后我去find更合适的东西。 我决定使用Redis,并立即开始在我的应用程序中实现connect-redis和node-redis 。 但是,在重复尝试修复之后,以下错误仍然存​​在。 错误如下: TypeError: Cannot set property 'loggedIn' of undefined at /Users/Ryan/Aggregus/server.js:300:25 at Promise.<anonymous> (/Users/Ryan/Aggregus/object_models/user.js:60:5) at Promise.<anonymous> (/Users/Ryan/Aggregus/node_modules/mongoose/node_modules/mpromise/lib/promise.js:162:8) at Promise.EventEmitter.emit (events.js:95:17) at Promise.emit (/Users/Ryan/Aggregus/node_modules/mongoose/node_modules/mpromise/lib/promise.js:79:38) at Promise.fulfill […]

连接会话中间件 – 重新生成与重新加载

我试图得到连接的会话中间件的挂,我想知道之间的区别:Session.regenerate()与Session.reload()。 具体来说,我检查了文档,没有解释什么会话重新加载实际上。 同样,我也对Session.save()方法感到困惑。 任何帮助非常感谢!

如何清理Nodejs(heroku + redis)中的所有会话?

我正在使用托pipe在heroku上的nodejs(expressjs)。 会话存储在redis( heroku的Redistogo插件)中: RedisStore = require('connect-redis')(express) app.use express.session secret: process.env.CLIENT_SECRET cookie: { maxAge: 604800000 } store: new RedisStore {client: redis} 用户login后,我将他的信息存储在req.session中 after_user_logged_id = (req, user)-> req.session.current_user = id: user._id name: user.name 我需要重新启动服务器并清理所有会话:注销所有用户强制他们login一次。 我应该怎么做? 重新启动redis插件没有帮助。