终止ExpressJS请求

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

用嵌套的承诺编写干净的代码

我正在写一个应用程序,与苹果进行validation以validation接收。 他们有一个沙箱和生产url,你可以张贴到。 在与苹果进行通信时,如果您收到21007状态,则表示您正在发布到制作url,而您应该在发布到沙盒上。 所以我写了一些代码来促进重试逻辑。 这里是我的代码的简化版本: var request = require('request') , Q = require('q') ; var postToService = function(data, url) { var deferred = Q.defer(); var options = { data: data, url: url }; request.post(options, function(err, response, body) { if (err) { deferred.reject(err); } else if (hasErrors(response)) { deferred.reject(response); } else { deferred.resolve(body); } }); return […]

如何将parameter passing给child_process.execcallback

有没有办法将额外的parameter passing给callback函数,当我使用child_process.exec(cmd,callback) ? 根据文档,callback函数只接收错误,stdout,sterr。 我最终可能会有一个获得额外参数的unix脚本,运行命令,并将命令的结果和参数输出到标准输出,但也许有更好的方法来做到这一点 谢谢

什么是正确的方式来创build快速请求返回的错误消息?

我有一个函数称为a接受callback,如果有错误,会调用一个错误。 a在快速路由请求中被调用。 如果有错误,错误应该是请求的响应。 function a(cb) { cb(new Error('Some error message')) } app.get('/', function (req, res) { a(function (error) { if (error) { res.json(error, 400) } res.send('No error') }) }) 我已经查看了Express的代码,看来res.json会将我的error res.json 。 但是,这个结果是一个空string: > var e = new Error('Some error message') undefined > JSON.stringify(e) '{}' > e.message 'Some error message' 有一些方法可以让我的路线在这里返回错误信息,比如在我的路线中将错误对象转换为toString 。 不过,我想知道在Node API中格式化错误消息的最佳做法是什么,以及这是否会改变这里的内容。 我应该以不同的方式格式化错误消息,还是应该处理路由中的Error对象,例如: […]

passportjs错误callback抛出exception

我正在使用MYSQL(具有sequelize)LocalStrategy这是除了当MYSQL抛出exception(只是为了testing,我closuresMYSQL服务器)正在工作。 return done(error)callback抛出exception崩溃的服务器。 这是我的一段代码: passport.use(new LocalStrategy({usernameField: 'email', passwordField: 'password'}, function (email, password, done) { db.User.find({where: {email: email}}).done(function (error, user) { if(error) return done(error); if (!user) return done(null, false, {message: 'unknown user'}); //validate password if (user.password != password) { return done(null, false, {message: 'invalid password'}); } //all ok return done(null, user); }); } )); 而例外: TypeError: […]

从标准input读取时,不能使用CTRL D触发'结束'事件

在下面的代码中 process.stdin.resume(); process.stdin.setEncoding('utf8'); process.stdin.on('data', function(chunk) { process.stdout.write('data: ' + chunk); }); process.stdin.on('end', function() { process.stdout.write('end'); }); 我不能用ctrl + D触发'end'事件,而ctrl + C只是退出而不触发它。 hello data: hello data data: data foo data: foo ^F data: ♠ ^N data: ♫ ^D data: ♦ ^D^D data: ♦♦

Heroku – 用Node.js创build了一个facebook应用程序,它给出了types错误

我正在尝试创build一个Facebook应用程序,这是我第一次。 我读了几篇关于如何创build一个的文章,我从这个页面https://developers.facebook.com/apps创build了一个应用程序。 当我创build它时,点击了从Facebook转到应用程序。 这是显示这个错误 我曾经试图在Heroku开发中心看到同样types的问题,自己解决问题我找不到任何解决scheme。 当我curl -v https://tranquil-oasis-2533.herokuapp.com它说HTTP / 1.1 500内部服务器错误。 这是来自heroku日志http://pastebin.com/0qdueiZE的输出。 有人请帮助我。

用passport.js twitterlogin重新login用户

在护照我有Twitterauthentication。 一切都很好login明智。 我有这个代码 app.get('/auth/twitter', function (req, res) { if (req.user) { return res.redirect('/'); } return passport.authenticate('twitter')(req, res); }); 所以,如果用户已经使用twitterlogin到我的网站,它只是redirect回来(可能最终会给出一个消息)。 一旦他们注销该网站,他们再次点击logintwitter,再次将他们带到Twitter授权应用程序页面。 它不应该。 当我看着其他网站,它从来没有要求我再次授权的应用程序。 如果我查看我的twitter个人资料的授权应用程序部分,我看到我正在开发的应用程序。 为什么我的应用程序在我已经提供的时候一直要求授权? 我怎样才能改变这个(我存储令牌和token_secret DB)? 谢谢您的帮助。

会话cookie不会使用ajax和nodejs服务器进行更改

我想在asynchronous请求后更改会话cookie,但不pipe我尝试过什么,我一直在失败。 我的要求如下: $.ajax({ type: "POST", url: "/setStatus", data: { userId : _userId, token: _token, tokenSecret : _tokenSecret, service : service, loggedIn : _loggedIn, authorized : _authorized }, xhrFields: { withCredentials: true }, crossDomain: true }).done(function(reply) { alert('finished'); }); 在服务器上设置会话variables。 exports.setStatus = function(req, res) { req.session.userId = req.body.userId; req.session.token = req.body.token; req.session.tokenSecret = req.body.tokenSecret; req.session.service = […]

将jQuery JSON对象发布到NodeJs Restify

我想知道为什么很难发布一个简单的JSONstring在/:parameter来restify。 我跟着很多例子,但没有find具体的东西。 我在前端有以下代码。 $("#btnDoTest").click(function() { var jData = { hello: "world" }; var request = $.ajax({ url: "http://localhost:8081/j/", async: false, type: "POST", data: JSON.stringify(jData), contentType: "application/javascript", dataType: "json" }); request.success(function(result) { console.log(result); }); request.fail(function(jqXHR, textStatus) { alert("Request failed: " + textStatus); }); }); 如果我连接j/后的参数,我发送简单的文本是成功的。 但是我想发送的是一个像这样的对象{hello:"world"}并将其重构到nodeJS中并使用它。 – 编辑: This is my nodejs file /* the below […]