Articles of express

Express:一个路由的基本authentication

我正在尝试制作一组​​工具来访问我的数据库。 大多数是通过我的web应用程序访问数据,但我也需要一个页面,我的快速动力站点的密码为网站所有者提供一个在线工具来编辑数据库; 所有其他路由将不需要身份validation。 使用express 3, basic-auth很容易添加这样一个密码,但是它的function已经被Express 4中的中间件和大多数在线教程所淘汰。 basic-auth的新版本将处理authentication标题信息,但是如何在浏览器中触发loginpopup窗口呢? 下面的代码只不过是样板,所以对于世界上最简单的login提示一些提示是值得欢迎的。 express = require('express') app = express() auth = require 'basic-auth' port = Number(process.env.PORT || 9778); app.listen port, () -> console.log "Listening on port: " + port app.use '/editor', (req, res) -> user = auth req if (user == "….") … console.log user app.get '/editor', (req, res) […]

Socket 1.0重复连接多次

我使用的是Heroku + RedisToGo + Express 4.0 + socket.io 1.0.6。 我刚刚从0.9升级到1.0,现在已经有一半了。 我从教程中一起入侵了一个应用程序,但是我对socket.io的理解不够清晰,所以我退后一步。 我的第一个问题是,现在socket.on('connect')重复发生,即使连接成功,也不会停止。 我的客户端console.log只是继续前进。 这里是客户端: // Connect the user socket.on('connect', function(){ var currentUserId = '<%= currentUser.id %>'; // Add user to redis socket.emit('login', { userID: currentUserId}); // Retrieve presence info socket.emit('presence'); }); // Show Presence socket.on('presence', function(data) { var userID = data.user; var presence = data.presence; […]

使用express.js在POST上提供静态内容

我正在尝试使用express.js为Facebook应用程序提供静态内容 app.configure(function (){ app.use('/', express.static(__dirname + '/public')); }); 这工作在一个GET但是在一个POST我得到一个404说Cannot POST / curl -X POST localhost:3001 Cannot POST / 我怎样才能解决这个问题? 基于zerkms的答案,我想出了这个黑客,我认为这是一个很糟糕的做法。 app.post('/', function(req, res, next){ try { if(req.url === '/'){ req.method = 'GET' } } catch(err){ res.send(500, err) res.end() } next() }); app.configure(function (){ app.use('/', express.static(__dirname + '/public')); }); 这工作,但我仍然喜欢一个更好的解决scheme,如果任何人有一个。

获取Web应用服务器的外部IP地址

我怎样才能得到服务器的全球IP? 我可以做一个http请求来' http://wtfismyip.com/json '并获得IP地址。 有没有办法让IP(或DNS)无需做外部请求? 我在'process.env'或'os'对象上找不到任何东西。 我使用expressj的nodejs和部署到heroku。

快速响应采取请求方法

我正在尝试从DELETE请求中获取响应 我正在使用Ajax进行DELETE,目前正在使用成功进行redirect。 $("#delete-account").click(function() { $.ajax({ url: '/user', type: 'DELETE', success: function() { window.location='/user/new'; }, error: function(error) { console.log(error); } }); }); 并在我的快车路线 router.delete('/', pass.isAuthenticated, function(req, res) { User.remove({_id: req.user._id}, function(err){ if(err) return console.log(err); req.flash('success', 'Your account has been deleted.'); res.redirect('/user/new'); <———– this redirects to DELETE(/user/new) }); }); redirect问题为DELETE响应。 我试过设置req.method ='get'和res.method ='get'以上。 既没有工作。 有任何想法吗 ? : […]

快速应用程序的简单密码authentication

我花了很长时间试图find一个简单的方法来密码保护使用Express(4)构build的网站,但我一直无法find一个教程或模块,这将有所帮助。 看起来似乎有任何复杂的, 成熟的用户注册/login程序使用护照 ,或者过于简单和不安全的HTTP基本authentication( 像这样 ),没有任何types的会话支持(以及上述主题的大量变化)。 我正在寻找的东西是将索引页面redirect到login页面,除非login,与会议支持某种注销选项。 我不需要数据库,只要相对安全,我会很乐意硬编码用户密码组合。 有没有什么资源可以帮助这个呢? 任何帮助或指针将不胜感激。

通过令牌validation,然后通过会话,如果令牌失败,使用护照?

我正致力于将现有的Web应用程序与NodeJS + Express后端适配到PhoneGap / Steroids应用程序。 当前Web应用程序的身份validation由Passport( http://passportjs.org/ )使用会话进行处理。 app.use( passport.initialize() ); app.use( passport.session() ); 在浏览器中很好用。 不幸的是,会话cookie在PhoneGap中不起作用。 所以发送到服务器的请求只会被拒绝。 PhoneGap的推荐解决scheme是使用令牌策略,而每个向服务器的请求中都包含一个唯一令牌,就像一个API端点一样。 所以,这是我想知道的: 是否有可能适应passport.session(),所以如果没有会话cookie被发现,它会改为检查一个req.token和授权反对呢? 我注意到已经有一些基于令牌的Passport策略可用。 (例如https://www.npmjs.org/package/passport-http-bearer )然而,所有这些策略似乎都假设会话将不会被使用,并被closures。 我真正需要的是使用两者,所以如果一个身份validation失败(例如会话),它可以通过并检查另一个身份validation(令牌)。 有没有人按照这个方法实现了一些东西? 任何build议/指针,将不胜感激。

将后端Express会话variables传递给Angular

当前代码: <div ng-controller="HeaderCtrl" class="header"> <div class="logo">intquest</div> <div ng-if="signed_in" class="header-actions"> <a href="/#/random">Random</a> <a href="/#/add">Add question</a> </div> <div ng-if="!signed_in" class="header-actions"> <a href="/#/register">Register</a> <a href="/#/login">Login</a> </div> </div> 我想以某种方式将我的Express会话var传递给$scope.signed_invariables。 因为这是一个HTML而不是Jade模板,我不能使用JSON.stringify ,我没有后端API,所以我不认为我可以做一个$http或资源请求,我应该怎么做这个? 什么是最佳实践?

点击button后使用angularjs,nodejs,expressjs下载Csv文件

我想在前端下载.csv文件。 这是我的代码: $http.get('/entity/consultations/_/registerationReport' ) .success(function (data) { myWindow = window.open('../entity/consultations/_/registerationReport', '_parent'); myWindow.close(); }); 我用json2csv转换器写入CSV文件。 json2csv({data: report, fields: fields}, function (err, csv) { if (err) throw err; res.setHeader('Content-Type', 'application/csv'); res.setHeader("Content-Disposition", "attachment; filename=" + "Report.csv"); res.end(csv, 'binary'); }); 但它在浏览器上打印csv文件的数据而不是下载csv文件。

无法在ec2上访问express服务器

我使用安装在亚马逊ec2服务器上的Express 4。 我想知道为什么我不能使用public-ip:8000 / 这是我的服务器代码: var express = require('express'); var http = require('http'); var app = express(); http.createServer(app).listen(8000); app.get('/', function (req, res) { res.send('Hello World!') });