在expressjs app.VERB调用中next()和next('route')有什么区别?

该文档阅读: app.VERB()方法在Express中提供路由function,其中VERB是HTTP动词之一,比如app.post()。 可能会给出多个callback,所有处理都是平等的,并且像中间件一样行为,除了这些callback可能会调用next('route')来绕过剩余的路由callback之外。 这种机制可以用来执行路线上的先决条件,然后在没有理由继续匹配路线时将控制权传递给后续路线。 他们是什么意思“绕过剩余的路线callback?”? 我知道next()会将控制权交给下一个匹配的路由。 但是… next('route') …什么function将得到控制…?

如何避免从闭包访问可变variables

我有这样的代码: for(var id=0; id < message.receiver.length; id++){ var tmp_id = id; zlib.gzip(JSON.stringify(message.json), function(err, buffer){ … pushStatusPool[message.receiver[tmp_id]] = null; // fix memory leak delete pushStatusPool[message.receiver[tmp_id]]; … }); } 我得到一个警告,在closures使用tmp_id可能会导致问题,因为它是一个可变的variables。 我怎么能避免呢? 我的意思是我怎么能发送一个不可变的variablescallback,因为这是一个for循环,我不能改变zlib.gzip代码? 换句话说,我怎么能把一个论点传递给一个封闭?

Node.JS导出函数没有对象封装

我正在查看Node.JS请求,并注意您可以使用 var request = require('request'); request(…) 但是,当我尝试做类似的模块,我尝试 exports = function() {} 这是行不通的。 我知道使用的唯一方法是 var request = require('request').request; request(…) 和 exports.request = function() {} 如何将整个导出设置为一个函数,而不是将函数添加到导出对象? 请求源代码中可能提供了一个提示,但是我发现很难弄清楚发生了什么事情。 你能帮我吗?

有没有办法将html文件或代码片段直接包含在jade中?

我有一组html文件,大部分是静态的,我想移动到我的node.js / express / jade项目中。 什么是正确的方式来包括HTML文件或片段直接在玉? 我不想将现有的html文件翻译成玉?

Gulp能否覆盖所有的src文件?

比方说,我想replace一堆文件中的版本号,其中许多文件位于子目录中。 我将通过gulp-replacepipe道来运行正则expression式replacefunction; 但我最终会想覆盖所有的原始文件 。 任务可能看起来像这样: gulp.src([ './bower.json', './package.json', './docs/content/data.yml', /* …and so on… */ ]) .pipe(replace(/* …replacement… */)) .pipe(gulp.dest(/* I DONT KNOW */); 那么我怎样才能结束它,以便每个src文件只是覆盖自己,在原来的位置? 有什么我可以传递给gulp.dest()会做到这一点?

在nodejs中将缓冲区转换为ReadableStream

我对Buffers和ReadableStreams相当陌生,所以也许这是一个愚蠢的问题。 我有一个库作为input一个ReadableStream,但我的input只是一个base64格式的图像。 我可以像这样在缓冲区中转换数据: var img = new Buffer(img_string, 'base64'); 但我不知道如何将其转换为ReadableStream或将获取的Buffer I转换为ReadableStream。 有没有办法做到这一点,或者我试图实现不可能的? 谢谢。

CouchDB,MongoDB和Redis中的哪个数据库适合从Node.js开始?

我得到更多的Node.js,并享受它。 我正在更多地进入Web应用程序开发。 我已经把自己的头围绕着Node.js,并且目前使用Backbone作为前端。 我正在做一些使用Backbone的应用程序来使用RESTful API与服务器进行通信。 在Node.js中,我将使用Express框架。 我到了一个地方,我需要一个简单的数据库在服务器上。 我习惯于Django的 PostgreSQL和MySQL ,但我需要的是一些简单的数据存储等。我知道关于CouchDB , MongoDB和Redis ,但我只是不确定要使用哪一个? 其中的任何一个更适合Node.js? 对于初学者来说,从关系型数据库转向其中的哪一个更好? 我只需要一些指导就可以select,我已经走到了这一步,但是当它来到这些types的数据库,我只是不知道…

Express.js在控制器中获取http方法

我正在build立一个registry(护照本地authentication,forms帮助)。 因为注册只知道GET和POST我想在一个函数中完成整个处理。 换句话说,我正在寻找类似的东西: exports.register = function(req, res){ if (req.isPost) { // do form handling } res.render('user/registration.html.swig', { form: form.toHTML() }); };

玉的Foreach循环(node.js模板引擎)

好吧,我正在从节点服务器获取一个关联数组,并试图将其呈现在Jade中。 我显然需要一个foreach循环,但似乎没有任何工作! 我试了这两个代码: – foreach row in rows { li= row – } 和 – rows.forEach(function(item)) { li= item – }) 我传递的数组被称为“行”。 任何想法,为什么这是行不通的? 我得到这个错误: 500 SyntaxError: Unexpected identifier 并用第二个代码: 500 SyntaxError: Unexpected token )

为什么我会收到错误“尝试打开未closures的连接”?

我试图通过mongoose将我的节点应用程序连接到mongodb。 这似乎是工作,因为我可以添加文档,但我得到错误{ [Error: Trying to open unclosed connection.] state: 2 } 。 我创build了一个非常简单的应用程序,只是为了确保连接我的实际应用程序之前,一切工作正常。 这是我的简单的应用程序: var mongoose = require('mongoose'); var Schema = mongoose.Schema; var timeSchema = new Schema({ timestamp: String }); var Time = mongoose.model('Time', timeSchema); mongoose.connect('mongodb://localhost/mydb'); var db = mongoose.connection; db.on('error', console.error.bind(console, 'connection error: ')); db.once('open', function () { var testA = new Test({ timestamp: […]