使用快速会话在MEAN应用程序中检查有效会话的最佳方法是什么?

在MEAN项目中,我一直使用express-sessions ( https://www.npmjs.com/package/express-sessions )和angular-route来pipe理用户login/authentication。 一旦用户login或注册,他们的用户数据(例如整个User )就被分配给一个会话,然后用户被redirect到一个新的页面: #!/dashboard 。 为了防止用户在没有首先注册或login的情况下访问#!/dashboard ,我从我的angular度控制器快速地进行“会话检查”,该angular度控制器传递到angular度工厂,快速ping服务器端做一个会话对象的检查。 如果一个会话存在,我返回一个布尔值true ,如果一个会话不存在,我发送布尔值false 。 然后,我做了一个条件语句:如果为true,继续在#!/dashboard页面上(用户会话有效)继续抓取post或用户数据等。 如果为false,则redirect到/login页面所在的位置(防止用户访问#!/dashboard )。 这完成了我的目标,即防止用户在浏览器中进入/#!/dashboard ,而无需login/注册,但这似乎是一个昂贵的解决scheme,并不是很干净。 有没有一个更清洁或更好的方式来执行此“会话检查”,以防止没有有效的login会话访问我的后端页面? 我已经使用了快递中间件,也许有办法快速检查每个请求? 有没有人有任何build议,我可以改善我的会议检查?

.npmignore – 忽略所有* .ts文件,而不是* .d.ts

我正在寻找一种很好的方式来在发布到NPM时忽略项目中的所有.ts文件,我可以通过将以下内容添加到我的.npmignore文件中来实现: *.ts 但是等等..实际上我想保留所有的.d.ts文件在我的项目中,当我发布… 什么可以添加到我的.npmignore文件,将保留所有的.d.ts文件,但忽略所有.ts文件? 我假设我必须使用某种forms的正则expression式来忽略以.ts结尾的所有文件,这些文件不以.d.ts结尾 所以这个JS正则expression式可能看起来像: *.\.[^d]\.ts 上述正则expression式应该是什么意思是匹配以.ts结尾的.ts结尾的任何内容 但当然,我们坚持我认为是不那么强大的正则expression式使用的操作系统等。

npm ERR! 在project@0.0.1启动脚本“react-native start”失败

npm -v:3.10.10 react-native -v:0.1.7 node -v:v6.9.5 ubuntu:16.04 watchman -v:4.5.0 Afrer执行react-native init project cd project和react-native run-android,当我执行npm start来运行服务器时,我有这个错误: project@0.0.1 start /home/sofiane/projet/merde2 > react-native start Cannot parse yarn version: 0.22 Scanning 547 folders for symlinks in /home/sofiane/projet/project/node_modules (3ms) ┌────────────────────────────────────────────────────────────────────────────┐ │ Running packager on port 8081. │ │ │ │ Keep this packager running while developing on any JS […]

Flash用户的NodeJS错误?

我正在使用Ajax和Node JS让用户注册一个页面的应用程序。 当用户点击注册时,我已经设置好检查用户名是否被占用。 到目前为止所有这些工作。 但现在,我需要提醒用户他们的用户名已被占用。 我将如何打印错误或以这种方式将错误闪烁给用户? 问题是我正在避免页面刷新。 app.post("/quiz", function(req, res, next){ User.findOne({username: req.body.username}, function(err, user){ if(err) { console.log(err)} if(user) { console.log(user) // I NEED TO SEND THE ERROR HERE SAYING THE USERNAME IS TAKEN // I NEED TO SEND THE ERROR HERE SAYING THE USERNAME IS TAKEN // I NEED TO SEND THE ERROR HERE […]

当需要expression时,它是一个函数还是一个对象?

当我将快递带入我的项目并创build一个新的快递应用程序时,我从这两行代码开始 var express = require('express'); var app = express(); 这在我看来像express是一个函数,返回我创build的app对象。 但后来我可以使用express.static() ,这使得我认为express是static方法的一个对象。 app.use(express.static('public')); 当我需要express它似乎logging一个对象,所以我很好奇如何express()返回的东西,如果它是一个对象? 我最后的猜测是express是一个函数,但是因为这是javascript, 函数是对象 ,它也可以有属性? 这些接近准确吗?

无法安装快递和包裹

嘿,对不起,如果这个问题是荒谬的,但我不能在NodeJS开始处理,我尝试安装npm install -gn global,并尝试在本地安装express,但是我不能这样做,我正在尝试像npm install express在设置我的本地path之前

如何在node.js app heroku中访问.env文件中的variables

我在一个名为.env的文件中声明了variables MONGOCONNECTIONSTRING=connectionstring 当我运行heroku local web说 [OKAY] Loaded ENV .env File as KEY=VALUE Format 我正在尝试使用这样的环境variables const connectionString = process.env.MONGOCONNECTIONSTRING 在我的index.js文件中 当我尝试打印variables连接string时,它是未定义的。 我如何访问variables。 Heroku的最佳实践说,要做到这一点,但我必须失去一些东西,因为variables永远不可用。

通过Express格式错误从Node API向客户端(Angular2)提供的身体响应

当我的Angular2组件发出一个请求来获取我的假模型数据对象时,它就像这样返回: _body: "[↵ {↵ "id": 0,↵ "title": "2017 Oscars",↵ "graphic": "https://wikitags.com/images/OscarsBanner.png",↵ 我期待的是一个像这样的数组: [ { id: 0, title: '2017 Oscars', graphic: '/images/OscarsBanner.png', categorycards: [ [Object], [Object], [Object], [Object] ] }, { id: 1, title: '2017 Super Bowl', graphic: '/images/SuperBowlBanner.png', categorycards: [ [Object], [Object], [Object], [Object] ] }, { id: 2, title: 'What people are talking about', […]

mongoose只回推插入推

我怎样才能回顾客户端数组插入的对象,我插入,然后在callback我有所有的客户端,我只想插入。 User.findOneAndUpdate( {_id: req.body.id }, { $push: { clients: { name: req.body.name, tel: req.body.tel, itens: req.body.itens } } }, {safe: true}, function(err, model) { if(err){ console.log(err); } if(!model){ console.log('Not Found') } var itens= model.itens; //print all clients i wanna to print only the inserted console.log(itens); } );

查找类方法返回空对象而不是用户数据

所以,我创build了不同的帮助器来减less我的控制器上的一些代码。 所以我创build了一个名为Lookup的类来帮助我search数据库中的用户,并创build了一个searchAccountKey(key,callback)。 所以,每当我使用这个方法,它似乎工作,但用户对象返回,而不是用户。 我怀疑这是由于收益率,但是当我使用收益率时,它给了我一个错误。 LookupHelper.js 'use strict'; const User = use('App/Model/User'); class LookupHelper { // Grab the user information by the account key static searchAccountKey(key, callback) { const user = User.findBy('key', key) if (!user) { return callback(null) } return callback(user); } } module.exports = LookupHelper; UsersController(第44行) Lookup.searchAccountKey(account.account, function(user) { return console.log(user); }); 编辑:每当我把产量infront的User.findBy() The keyword […]