Tag: express

AngularJS – 显示/隐藏导航项目,如果用户login

我有一个单页的AngularJS应用程序,通过Mongoose与Express,node.js和MongoDB一起工作。 使用Passport进行用户pipe理/authentication。 我希望导航栏项目根据用户是否login进行更改。 我很难搞清楚如何实现它。 我发现用户是否通过http请求login: server.js app.get('/checklogin',function(req,res){ if (req.user) res.send(true); else res.send(false); 在前端,我有一个NavController使用Angular的$http服务调用它: NavController.js angular.module('NavCtrl',[]).controller('NavController',function($scope,$http) { $scope.loggedIn = false; $scope.isLoggedIn = function() { $http.get('/checklogin') .success(function(data) { console.log(data); if (data === true) $scope.loggedIn = true; else $scope.loggedIn = false; }) .error(function(data) { console.log('error: ' + data); }); }; }; 在我的导航中,我正在使用ng-show和ng-hide来确定哪些select应该可见。 当用户点击导航项时,我也触发了isLoggedIn()函数,检查用户是否每次点击都login。 的index.html <nav class="navbar navbar-inverse" role="navigation"> […]

困惑于所有的Node JS框架/库等等

我感觉有点困惑,Node.js中有这么多框架。 有人能够给我一个概述 – 下面的库/框架/相关/彼此之间的相互作用 – 包括什么,或者每个人的主要目的是什么? – 他们之间的差异 另外,如果还有其他人,我已经把我的名单放在了一边,随意添加他们,并说明他们是什么以及他们是如何适应的。 节点 CoffeeScript的 骨干 performance

Node.js + mongoose

我是Node新手,我正面临一个错误: [RangeError:超出最大调用堆栈大小] 我无法解决这个问题,因为大多数其他堆栈问题stackoverflow有关节点处理数百callback的问题,但我只有3在这里。 首先获取(findbyid)然后更新一个保存操作! 我的代码是: app.post('/poker/tables/:id/join', function(req,res){ var id = req.params.id; models.Table.findById(id, function (err, table) { if(err) { console.log(err); res.send( { message: 'error' }); return; } if(table.players.length >= table.maxPlayers ) { res.send( { message: "error: Can't join ! the Table is full" }); return; } console.log('Table isnt Full'); var BuyIn = table.minBuyIn; if(req.user.money < table.maxPlayers […]

在Express和Node.js中,是否可以扩展或覆盖响应对象的方法?

通过每个中间件,Express传递一个res和一个req对象。 这些对象分别扩展来自http.ServerResponse和http.ClientRequest的本地对象。 我想知道是否有可能重写或扩展响应对象的方法。 例如,而不是res.render('home', jsonData); ,我想用一个名为customRender的自定义方法来扩展res ,并像这样使用它: res.customRender() 。 我没有被困在一个特定的问题或任何东西。 我只想学习如何扩展本地对象,或者像本例一样,来自Node.js中第三方模块的对象

护照login和持续会话

背景 我有一个与邮差完全testing的CRUDfunction的平均应用程序。 我一直试图坚持login相当一段时间,没有运气。 我已阅读并尝试以下 护照文件 toon io的博客关于login 快速会议 Scotch io,节点auth变得容易 再加上一些其他的阅读材料(许多SO问题) 但我只能注册和login一个用户,而不是坚持login会话。 我的应用程序 这里是一个链接到完整的github回购(如果你正在寻找最新的变化检查开发分支) 我对authentication/login的理解 这里是我的理解用户login与我的项目代码示例和邮递员结果以及控制台日志的截图。 护照设置 我有以下auth.js文件,它configuration护照 var passport = require('passport'); var LocalStrategy = require('passport-local').Strategy; module.exports = function(app, user){ app.use(passport.initialize()); app.use(passport.session()); // passport config passport.use(new LocalStrategy(user.authenticate())); passport.serializeUser(function(user, done) { console.log('serializing user: '); console.log(user); done(null, user._id); }); passport.deserializeUser(function(id, done) { user.findById(id, function(err, user) { console.log('no […]

所有路由的HTTPSredirectnode.js / express – 安全问题

我最近在一个节点/快递服务器上设置了HTTPS。 我已经成功设法redirect所有的路线使用https使用下面的代码: // force https redirect var https_redirect = function(req, res, next) { if (req.secure) { if(env === 'development') { return res.redirect('https://localhost:3000' + req.url); } else { return res.redirect('https://' + req.headers.host + req.url); } } else { return next(); } }; app.get('*', function(req, res, next) { https_redirect(req, res, next); }); 这似乎工作正常。 不过,由于我还没有涉及到这个问题,所以我有几个问题: 这是从httpredirect到https的理想方式吗? 如果用户使用http路由,在redirect之前,任何人都可以使用像sslstrip这样的东西来嗅探会话信息。 节点:v0.8.2; […]

我怎样才能使用Express框架的AJAX请求?

我想使用Express发送AJAX请求。 我运行的代码如下所示: var express = require('express'); var app = express(); app.get('/', function(req, res) { // here I would like to make an external // request to another server }); app.listen(3000); 我将如何做到这一点?

使用带有nodeJS和Express的AngularJS html5mode

我正在使用Express的nodeJS服务器来服务我的AngularJS应用程序。 这一切工作正常,当我使用angularJS默认路由(hashbangs),但现在我试图激活html5模式。 我正在像这样激活html5mode: $locationProvider.html5Mode(true).hashPrefix('!'); 这就是我的nodeJS app.js文件的样子: var path = require('path'), express = require('express'), app = express(), routes = require(path.join(__dirname, 'routes')); app.configure(function() { app.use(express.logger('dev')); app.use(express.compress()); app.use(express.methodOverride()); app.use(express.bodyParser()); app.use(app.router); app.all("/*", function(req, res, next) { res.sendfile("index.html", { root: __dirname + "/../app" }); }); app.use(express.errorHandler({ dumpExceptions: true, showStack: true })); }); 然而,这现在作为我的index.html文件服务于所有请求,所以我从requireJS得到以下错误: Uncaught SyntaxError: Unexpected token < 我试着将下面的内容添加到我的nodeJS app.js以便正确地为我的资源提供服务: […]

持护照,mongodb和快递会议

我正在使用护照来处理我的应用程序中的身份validation和会话。 我坚持使用mongostore的会话MongoDB。 一般来说设置工作正常。 但是,当我重新启动服务器时,所有的用户都注销了,所以显然会话被保存在内存中,而不是只保存到mongodb。 我正在尝试实现一个用户在重新启动服务器时仍然login的设置。 基本configuration如下 中间件 app.use(express.cookieParser('your secret here')); app.use(express.session()); app.use(passport.initialize()); app.use(passport.session({ maxAge: new Date(Date.now() + 3600000), store: new MongoStore( { db: mongodb.Db( conf.mongodbName, new mongodb.Server( 'localhost', 27017, { auto_reconnect: true, native_parser: true } ), { journal: true } ) }, function(error) { if(error) { return console.error('Failed connecting mongostore for storing session data. %s', […]

MongoDB count()未定义

我在JavaScript-NodeJS-MongoDB上很新手,我尝试了解查询发现的文档数量。 … var page = req.params.page; var db = require('mongojs').connect('localhost:27017/foo', ['bar']); var docs = db.bar.find({x:'MME'}).sort({y:1}).skip(10*(page-1)).limit(10); var nbDocs = db.bar.find({x:'MME'}).count(); /*docs.count();*/ console.log(nbDocs); 但不幸的是,日志给我'未定义',如果我编码相同 var nbDocs = docs.count(); 感谢您的宝贵帮助。 吉尔斯。