Tag: 连接

访问一个Connect中间件的最佳方式是什么?

我已经写了一个连接中间件,在这里我想重新使用“静态”连接中间件的“发送”方法(如果安装的话)。 在我的中间件中获得该代码的最佳方式是什么? 目前我正在通过快速对象使用“使用”我的中间件,有点像这样: app.use(myMiddleware(express, options)); 然后myMiddleware调用 express.static.send(req, res, next, …) 这有效,但感觉有点笨拙。 有没有更好的办法?

node-mysql无法处理多个查询?

我正在使用:node-mysql arrtickers大约有200个值。 arrtickersclosures将值传入sym。 sym将传递给每个函数的值(以asynchronous模式运行,每个函数将自己开始运行而不必等待前面的fn完成) 这里的问题是mysql似乎无法处理多个调用? events.js:48 throw arguments[1]; // Unhandled 'error' event ^ Error: reconnection attempt failed before connection was fully set up at Socket.<anonymous> (/home/ubuntu/node/node_modules/mysql/lib/client.js:67:28) at Socket.emit (events.js:64:17) at TCP.onread (net.js:398:51) arrtickers.forEach(function(value) { var sym= value; (function(sym) { url2= "http://test2.com/quote.ashx?t="+sym+"&ty=c&ta=1&p=d&b=1"; request({ uri:url2 }, function (error, response, body) { jsdom.env({ html: body, scripts: [ jqlib […]

带有Connect基本身份validation的Expressj不会设置请求用户

我正在使用express并通过连接中间件添加基本身份validation。 我正在尝试使用asynchronous版本,并声称使用asynchronous版本调用时,将在请求对象上设置user属性。 如果我打电话给正确的fn(err, obj); 与一个对象,然后基本身份validation传递和移动到我的路线,但我希望req.user设置时,它到达我的路线。 这里是关于基本身份validation的连接文档。 我是不是正确地调用callback? app.use(express.basicAuth(function(user, pass, fn){ db.getUserByEmail(user, function(err, obj){ if (err) sendError(500, req, 'error', err); else if (obj == null) fn(err, obj); else if (obj.password == pass) fn(null, obj); else fn(null, null); }); }));

NodeJS会话variables不会粘住

我有一个nodejs和连接的问题,并没有保持请求之间的会话variables的事实。 现在我不想用数据库来存储我的会话。 我只想使用MemoryStore。 我的服务器: var server = connect() .use(connect.cookieParser('justmeknowsthis')) .use(connect.session({ cookie: { maxAge: config.data.sessionTimeout /* 1800000 */ }})) .use(auth.authorize) .use(routes.routes) .use(function(req, res, next) { utils.data.returnJsonError(res, 404, true, { message: 'Call not supported' }); }); 我正在设置像这样的会话variables: req.session.auth = true; req.session.username = data.username; 在发现了一些关于这个问题的更多信息之后,我注意到,如果我只是增加超时时间,那么可能是因为它开始工作时区。 从我过去的使用ASP.Net的经验,我从来没有遇到过这个问题,因为它似乎并不关心。 我怎样才能解决这个问题?

在Express中login之前如何避免会话

我似乎无法想出一个方法来防止Express / Connect创build会话,直到我有一个有效的用户login。 当使用DB-Backed Session Storage和从非浏览器调用REST Services时,问题尤其突出,因为在这种情况下,连接会话对象将为每个请求创build一个新的会话,我当然要防止这个会话。 然而,每当用户通过身份validation时,我确实需要会话,因为我正在使用Passport.js进行需要会话的身份validation,而且我确实需要从发送的Cookie信息加载会话数据。 查看连接会话代码的来源,似乎总是创build一个新的会话,如果没有从客户端发送没有任何选项,以防止它..? 谢谢Alex

Nodejs性能优化

我对性能优化并不陌生,虽然我认识到nodejs可能不是最适合初学者的友好开始,但它是目前的任务。 观察:简单的JSON API请求在没有负载的登台服务器上和在数据库中的用户数小于10个的情况下需要几百毫秒。 特别是对/ api / get_user的调用需要〜300ms 执行此代码: exports.get_user = function(req, res) { return res.json(req.user) } (注意:我们将会话存储在Redis中) 堆栈: 的NodeJS performance Redis的 蒙戈 我从哪说起呢?

TypeError:无法读取未定义的属性'databaseName'

我一直把头撞在墙上。 我一直在做基本的Node.js lynda.com tutorail,我卡在这一点上。 当我键入nodemon server.js我得到错误。 我遇到了在node.js中导出数据库连接的问题 任何提示? 有没有更好的debugging方法,然后在Node中进行更改和刷新? /Users/khebert/Sites/node/airline/node_modules/connect-mongo/lib/connect-mongo.js:87 this.db = new mongo.Db(options.mongoose_connection.db.databaseName, ^ TypeError: Cannot read property 'databaseName' of undefined at new MongoStore (/Users/khebert/Sites/node/airline/node_modules/connect-mongo/lib/connect-mongo.js:87:60) at module.exports (/Users/khebert/Sites/node/airline/app.js:22:10) at Object.<anonymous> (/Users/khebert/Sites/node/airline/server.js:4:27) at Module._compile (module.js:456:26) at Object.Module._extensions..js (module.js:474:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) at Function.Module.runMain (module.js:497:10) at startup (node.js:119:16) at node.js:901:3 2 Jan 08:04:56 […]

在Windows 7上找不到模块“连接”

请看下面: C:\Program Files\nodejs>npm -g install connect npm http GET https://registry.npmjs.org/connect npm http GET https://registry.npmjs.org/connect npm http GET https://registry.npmjs.org/connect npm http GET https://registry.npmjs.org/finalhandler/0.1.0 npm http GET https://registry.npmjs.org/debug/1.0.4 npm http GET https://registry.npmjs.org/parseurl npm http GET https://registry.npmjs.org/utils-merge/1.0.0 npm http GET https://registry.npmjs.org/utils-merge/1.0.0 npm http GET https://registry.npmjs.org/finalhandler/0.1.0 npm http GET https://registry.npmjs.org/parseurl npm http GET https://registry.npmjs.org/debug/1.0.4 npm http GET https://registry.npmjs.org/utils-merge/1.0.0 npm […]

如何创build连接文件的源映射

我想连接一个单一types的一堆不同的文件到一个大文件。 例如,很多javascript文件放到一个大文件中,很多css文件放在一个文件中等等。我想创build一个文件pre-concatenation的sourcemap,但是我不知道从哪里开始。 我在Node工作,但我也开放在其他环境中的解决scheme。 我知道有些工具可以做到这一点,但是他们似乎是按照语言(uglifyjs,cssmin或者其他所谓的语言)的语言,但是我想要一个不是特定于语言的工具。 另外,我想定义文件是如何绑定的。 例如,在JavaScript中,我想给每个文件自己封闭一个IIFE。 如: (function () { // File }()); 我也可以想到其他包装我想实现不同的文件。 这是我现在看到的选项。 但是,我不知道哪一个是最好的,或者如何开始其中的任何一个。 find一个这样做的模块(我在Node.js环境中工作) 用Mozilla的源图模块创build一个algorithm。 为此,我也看到一些选项。 只将每一行映射到新的行位置 将每个字符映射到新位置 将每个单词映射到新的位置(这个选项似乎超出了范围) 不要担心源地图 你们对这些select有什么看法? 我已经尝试了选项2.1和2.2,但对于级联algorithm来说,解决scheme似乎太复杂了,并且在Google Chrome浏览器工具中没有完美实现。

中间件不能连接HTTP服务器

我正在阅读专业Node.js,我想了解连接HTTP中间件框架。 我创build了一个简单的中间件,返回一个用自定义testingstring回复的函数: function replyText(text) { return function(req, res) { res.end(text); }; } module.exports = replyText; 但是,当我尝试在连接服务器中使用这个中间件。 节点给我一个错误: /Users/socomo22/work/hello_world_app_v2.js:8 var app = connect.createServer(replyText('Hello World!')); ^ TypeError: undefined is not a function 但是当我简单地使用: var app = connect(); app.listen(8080) 它运行时不会出现任何错误。 我不明白我是否在做任何合乎逻辑的错误。 我将如何使用这个简单的中间件? 这是我的连接服务器文件: var connect = require('connect'); // middlewares var replyText = require('./reply_text'); var app = connect(); var […]