Articles of 表示

将多个DB / mongoose查询的结果呈现给express.js中的视图

考虑到mongoose(或者后缀或者redis)查询的asynchronous性质,当你在渲染视图之前需要做多个查询时,你会做什么? 例如,在会话中有一个user_id ,并且想通过findOne检索关于该特定用户的一些信息。 但是你也想显示最近login的用户列表。 exports.index = function (req, res) { var current_user = null Player.find({last_logged_in : today()}).exec(function(err, players) { if (err) return res.render('500'); if (req.session.user_id) { Player.findOne({_id : req.session.user_id}).exec(function(err, player) { if (err) return; if (player) { current_user = player } }) } // here, current_user isn't populated until the callback fires res.render('game/index', { title: […]

Node / Express – bodyParser为PUT请求为空

我得到一个ExpressPer错误与ExpressParter是无法parsing任何PUT请求…我的configuration是这样设置的: app.use(express.bodyParser()); app.use(express.methodOverride()); app.use(express.query()); app.use(app.router); 然而,每次我向端点发出PUT请求时,req.body都会返回“undefined”。 我已经尝试通过Chromes REST控制台发出请求,并且也通过jQuery ajax请求这样做: $.ajax({ url: 'https://localhost:4430/api/locations/5095595b3d3b7b10e9f16cc1', type: 'PUT', data: {name: "Test name"}, dataType: 'json' }); 有任何想法吗?

nodejs,socket.io:如何从套接字函数获取请求和响应?

即时通讯创build聊天应用程序,使用nodejs(0.8.15),expression(> 3.0)框架和mongodb注册用户。 var express = require('express') , http = require('http') , path = require('path') , io = require('socket.io'); var app = express() , server = http.createServer(app) , io = io.listen(server); app.configure(function() { app.set('port', process.env.PORT || 3000); app.set('views', __dirname + '/views'); app.set('view engine', 'ejs'); app.use(express.favicon()); app.use(express.logger('dev')); app.use(express.bodyParser()); app.use(express.methodOverride()); app.use(express.cookieParser('secret')); app.use(express.session({cookie: {maxAge: 60000*100}})); app.use(app.router); app.use(express.static(path.join(__dirname, 'public'))); }); […]

低优先级Express.js app.get('/ route');

有没有办法注册express.js app.get()调用较低的优先级? 例如, app.get('*', function(req, res) {}); app.get('/page', function(req, res) {}); 有没有办法在第一次调用时指定一个较低的优先级,以便它在path查找的底部,从而允许先调用后面的path,就好像第一行代码在第二行之后执行一样的代码?

403 / Express 3 / Node的禁用错误自定义页面

我如何创build一个将处理来自Express的403错误的路线? 我有默认路由来捕捉404/500,但它似乎停止之前,有没有去路由器。 只需将堆转储到屏幕即可。

终止ExpressJS请求

如何结束快递3的要求? res.end()肯定不会停止处理。 exports.home = function(req, res) { res.end(); console.log('Still going, going…');

与ExpressJS集成的AngularJS和Node.js

我正在尝试用Express和Angularjs编写Node.js的应用程序。 我可以允许AngularJS处理所有的登陆请求吗? 而Node.js纯粹是针对API的? 这意味着用Node.js编写的所有路由将如下所示: app.get('/api/users', users.showAll); app.post('/api/users', users.create); app.get('/api/users/fb/:fbId', users.findByFb); app.get('/api/users/:userId', users.show); app.put('/api/users/:userId', users.update); app.del('/api/users/:userId', users.del); 和AngularJS将能够解决自己的url,例如localhost / users / Some-Name? 将两者结合在一起时要遵循哪些最佳实践? 同样,build议将AngularJS和Node.js应用程序分成两个不同的应用程序? 有什么办法可以做到这一点? 提前致谢!!

Socket IO WebSocket请求被企业防火墙阻止。

从企业防火墙/代理使用socket.io模块的解决scheme是什么? 这是我正在使用的代码。 // setup express server var app = express() var serv = http.createServer(app); serv.listen(80); // setup socket io – listens in on express store as well for sessions var io = require('socket.io').listen(serv);

如何在Sails.js中gzip JavaScript和CSS资源?

我正尝试在Sails.js(Node)应用程序中为我的资产启用gzip压缩。 在生产环境中启动应用程序时, assets/linker/js和assets/linker/styles中的所有资源都被连接,缩小,成功地成功(在Gruntfile中指定)。 以下输出文件被生成: .tmp/ public/ min/ production.js production.css 我也想添加gzip压缩,因此我已经安装了grunt-contrib-compress并将压缩任务添加到Gruntfile中。 我可以通过成功压缩文件获得以下结果。 .tmp/ public/ min/ production.js production.js.gz production.css production.css.gz 我现在的问题是,服务器需要响应与gzip文件 (当客户端接受编码),而不是正常的,我找不到一个方法来做到这一点。 也许政策是这样做的风帆? 还是有另一种方式来使用快递中间件? 如果有帮助,这是当前的sails-linker任务,它将javascript production.js文件插入到标记中: … prodJs: { options: { startTag: '<!–SCRIPTS–>', endTag: '<!–SCRIPTS END–>', fileTmpl: '<script src="%s"></script>', appRoot: '.tmp/public' }, files: { '.tmp/public/**/*.html': ['.tmp/public/min/production.js'], 'views/**/*.html': ['.tmp/public/min/production.js'], 'views/**/*.ejs': ['.tmp/public/min/production.js'] } }, … 提前谢谢了。

在Mocha中描述()是什么

我正在试着用摩卡弄脏我的双手,这里是我从文档中看到的例子: var assert = require("assert") describe('Array', function(){ describe('#indexOf()', function(){ it('should return -1 when the value is not present', function(){ assert.equal(-1, [1,2,3].indexOf(5)); assert.equal(-1, [1,2,3].indexOf(0)); }) }) }) 大多数例子显示了第二个描述语句 describe('#indexOf()', function(){ 从#indexOf() #开始。 这个#的意义是什么? 为什么这不能简单地写成indexOf ? 我在哪里可以得到对描述如何工作的基本理解? PS:我查看了http://visionmedia.github.io/mocha/#interfaces的文档,但无法弄清楚这些是如何进入画面的,以及这些接口是如何处理的。 谢谢