Tag: 表示

使用中间件与app.use

有什么区别: function setLocale(req, res, next) { req.params.locale = req.params.locale || 'pt'; res.cookie('locale', req.params.locale); req.i18n.setLocale(req.params.locale); console.log(req.params.locale); next(); } app.get('/:locale?', setLocale, function(req, res) { res.render("index"); }); 和这个: app.use(setLocale); function setLocale(req, res, next) { req.params.locale = req.params.locale || 'pt'; res.cookie('locale', req.params.locale); req.i18n.setLocale(req.params.locale); console.log(req.params.locale); next(); } app.get('/:locale?', function(req, res) { res.render("index"); }); ?? 只有第一个工作,如果我尝试使用app.use,代码将打破原因req.params.locale将是未定义的。

如何在vps中运行node.js应用程序

我用express和socket.io创build了一个node.js聊天应用http://socket.io/get-started/chat/ 我在我的本地服务器上运行成功的聊天应用程序。 我必须在我的VPS中部署它。 有什么步骤要做? 我在我的VPS中安装了node express和socket.io,并将所有内容上传到了服务器。 我在puTTY中运行命令$node index.js 。 它说在3000端口上听。 但是当我去那个url获取错误http://******.in/socket.io/socket.io.js 404(未find) 但它运行在我的本地主机非常好。 index.js var app = require('express')(); var url = require('url'); var server = require('http').Server(app); var io = require('socket.io')(server); var numUsers=0; var users={}; app.get('/', function(req, res){ res.sendFile(__dirname + '/index.html'); }); server.listen(3000, function(){ console.log('listening on *:3000'); }); io.sockets.on('connection',function(socket){ console.log('connected'); socket.on('send message',function(data,callback){ var msg=data.trim(); if(msg.substr(0,1)=='p'){ msg=msg.substr(1); […]

nodejs或expressjs在没有响应返回时重复调用路由

我正在使用expressjs。 我的问题是,如果出于某种原因,我没有提供回应,路由又被调用。 在萤火虫中,请求的状态将会“等待”。 最后,在第二次调用路由之后,我得到一个响应ERR_EMPTY_RESPONSE 。 这是一个简单的testing: // main.html <html> <body> <span>test</span> </body> </html> <script> $.get("/test"); </script> // app.js var express = require('express'); var app = express(); app.use(express.static(__dirname + '/public')); app.get('/test', function(req, res) { console.log("I'm called"); }); http.listen(3000, function() { console.log('Express started'); }); 你会看到I'm called你的路线,然后再约15-20秒。 看起来Express或Node似乎导致路线再次运行。 为什么会这样,怎么能防止呢? 编辑 :做了一个简单的testing演示问题。

NodeJS崩溃与多个请求

我的nodejs服务器实时地随机崩溃(并且总是在Web Stress Tool上使用10+线程请求)。 以下是我认为是根本原因的代码。 main.js ——– app = express(): ——— app.get('/image/*', actions.download); actions.js var request = require('request'); exports.download = function(req, res){ var url = <Amazon s3 URL>; req.pipe(request(url)).pipe(res); }; 当服务器崩溃时,我在nohup中得到错误 stream.js:94 throw er; // Unhandled stream error in pipe. ^ Error: socket hang up at createHangUpError (http.js:1476:15) at Socket.socketOnEnd [as onend] (http.js:1572:23) at Socket.g (events.js:180:16) […]

发送重复命中后无法设置标题

我使用快递4.x节点 我的app.js代码包括 // add generic library to global space global._generic = generic; connection.connect(function(err, db) { if (err) { console.error('error connecting: ' + err.stack); } else { connection.query('USE hakka'); var attachDB = function(req, res, next) { req.db = connection; console.log("Attached DB to req variable. Now moving for next middleware…\n"); next(); }; var requireLogin = function(req, res, […]

表示js winstonlogging客户端的ip地址

在app.js我已经configurationwinstonloginmongoose的查询。 mongoose.set('debug', function(collectionName, method, query, doc) { winston.log('info', { collection: collectionName, method: method, query: query, doc: doc } ); }); 这会将所有查询完美地logging到我定义的文件中。 但我没有明白这一点 How to log the client IP address with queries 因为在快递req.ip可以得到我的客户端IP地址,但这只在里面工作 function(req, res, next) () 有没有其他的方法来初始化并获取客户端的IP地址在app.js ?

在nodejs上,如何debugging长的内容下载时间为微小的有效载荷?

我在亚马逊EC2上运行nodejs express服务器。 我写了一个简单的速度testing路线,返回一个146字节的响应。 看看Chrome的networking标签,我一直看到一个80 – 120毫秒TTFB,我明白这是相当合理的。 但是我也一直看到一个100毫秒以上的内容下载时间,这似乎真的很长,因为我的回答是“完成!”这个词。 与一些基本的http头。 我正在使用http,而不是https,并且为我的testing创build了一个单独的EC2实例,它没有外部负载。 下载时间是否合理?如果不是,我该如何debugging? 我的代码如下所示: app = express(); app.use(function(req, res, next) { if (req.url === '/speed_test') { res.write('Done!'); return res.end(); } else { return next(); } }); … the rest of my app … 编辑:当我在我的笔记本电脑上运行服务器,我看到约2毫秒的TTFB和1毫秒的内容下载时间。

请求中止expressjs

我正在使用expressjs和multer来处理我的nodejs服务器上的file upload。 我经常在生产日志中看到这个错误: Error: Request aborted at onaborted (/home/drp/server/node_modules/express/lib/response.js:951:15) at Array.onfinish [as 0] (/home/drp/server/node_modules/express/lib/response.js:987:50) at listener (/home/drp/server/node_modules/express/node_modules/on-finished/index.js:164:15) at onFinish (/home/drp/server/node_modules/express/node_modules/on-finished/index.js:95:5) at callback (/home/drp/server/node_modules/express/node_modules/on-finished/node_modules/ee-first/index.js:33:10) at Socket.onevent (/home/drp/server/node_modules/express/node_modules/on-finished/node_modules/ee-first/index.js:66:5) at Socket.emit (events.js:117:20) at net.js:440:14 at process._tickCallback (node.js:419:13) 这是什么意思? 我如何追踪和debugging?

NodeJs,ExpressJs,Mongoose中的MVC客户端validation

我如何在NodeJs,ExpressJs和mongoose中实现基于模型的客户端validation。 类似于.Net中的MVC4validation 任何人都可以build议一个节点模块或代码或链接。 请参考下面的链接 http://www.codeproject.com/Articles/718004/ASP-NET-MVC-Client-Side-Validation 提前致谢。

如何使用node.js和express来设置单实例多租户结构

我正试图将我们的应用程序转移到多租户架构,每个客户都有不同的数据库。 我们使用node.js,express和passport进行身份validation。 我试图调查passports.js,但它似乎已经出版2年前,并不断有问题与节点。 有其他select吗? 或者,你如何用passport.jsbuild立多租户?