Articles of 干

我怎样才能以DRY的方式编写Node.js Web服务?

我正在写一堆web服务,它们都有一些共同的模式。 例如,他们都有相同的要求 var x = require(…); var y = require(…); 做类似的authentication var auth = express.basicAuth(…); server.use(auth); 并有类似的错误信息。 server.error(function(err, req, res, next){ … }); 有没有办法在一个共同的地方写上述内容,如果有什么变化,我可以做一个单一的变化,而不是五六个?

WebSockets加RESTful接口,如何编写Node.js中的DRY代码?

我的Node.js应用程序提供了WebSockets和RESTful接口。 我写了一个替代Backbone.synch与Socket.IO一起使用的传输。 DRY问题 :在客户端事件上执行的callback包含与RESTulpath的callback几乎相同的逻辑。 客户端发出的事件和数据之间的映射示例以及相应的操作: +—————-+———————————+——————–+ | event emitted | data emitted | RESTful URL | +—————-+———————————+——————–+ | read:users | empty string | GET /users | | read:users | id of the model | GET /users/:id | | create:users | full model as JSON | POST /users | | destroy:users | id of the model […]

在expressjs渲染中干燥布局本地化

我在nodejs中使用express,并试图保持我的视图呈现干燥。 在我的布局里面,我有以下的东西(我在用玉石) body nav.login -if(currentUser) ="logged in information" -else ="logged out information" !=body 问题是,我每次渲染,现在我需要有 res.render('anything.jade',{ locals: { currentUser: req.session.currentUser, /*all of my other locals*/ } }); 看起来像是一个痛苦,必须通过所有的渲染调用,并添加,然后做同样的事情,如果我必须添加任何其他当地人的布局。 有什么办法可以避免在我渲染的任何地方重新input“currentUser”到当地人

在NodeJS中需要几个模块的最佳方法

我不太喜欢需要模块的标准方式,这是这样的: connect = require 'connect' express = require 'express' redis = require 'redis' sys = require 'sys' coffee = require 'coffee-script' fs = require 'fs' 这不完全是干的。 在一个适中的CoffeeScript服务器中,require舞需要占用整个脚本的一小部分! 我一直在玩弄以下select: "connect,express,redis,sys,coffee-script,fs" .split(',').forEach (lib) -> global[lib] = require lib 既然我还没有看到有人试图重构标准方法,我想我会问这样做是否合理,如果是的话,有没有更好的方法来做到这一点?