Tag: expression

Express.js如何在login后使用安全性

我有一个web应用程序正在build立在express.js与postgresql数据库。 我想知道如何实现安全,但每个人都使用不同的东西(我想这是件好事?)。 不同的模块不同的authentication序列等我现在有什么:1)用户表单发布到例如/login2)应用程序路线到特定路线3)在路线我尝试以下 var localconstring = "postgres://" + usr + ":" + pass + "@ip:port/db"; var client = new pg.Client(localconstring); client.on('drain', client.end.bind(client)); client.connect(function (err, client, done) { 数据库使用md5,所以pass已经被db保护了。 究竟应该发生什么? 我应该用salt和散列的用户名和密码,然后保存咸/散列的凭据旁边的盐,然后使用数据库的MD5也? 如果是这样的模块? 我应该如此login或尝试从pg_roles /用户select* 非常感谢! (关于盐和散列如果可能的话,一些详细的例子,因为我很熟悉authentication安全) 忘了提及。 cookies ..authentication后,我设置了以下的cookie: res.cookie('user', req.body.lguser.username, { signed: true }) res.cookie('watcher', o, { signed: true }) 之后再看看 req.signedCookies.user !== undefined 签名属性是否安全?

什么是正确的方式来处理从Node.js许多MySQL服务器?

我开发移动社交networking。 所有数据存储在MySQL(通过分片)。 存储在Redis中的热数据,Redis中也有碎片映射。 后端= node.js(快速) 在向移动客户端的后端请求中向不同的MySQL服务器快速请求的正确方法是什么? 例: 客户端向服务器请求id = 1的用户configuration文件,我们将其存储在服务器mysql-1 shard#1上。 同时,另一个客户端向服务器请求id = 2的用户configuration文件,我们将其存储在服务器mysql-2分片#2上。 MySQL服务器的数量将会增长。 而对服务器的请求数量也会增长。 初始化一个新的连接到MySQL的每个请求到后端 – 我认为这不是一个好主意。

NodeJS + ExpressJS + RedisStore会话未定义

我经历了许多同样的问题,但是各种解决scheme都没有帮助。 我正在使用Redis将会话存储在集群NodeJS + ExpressJS应用程序中,但会话始终未定义。 这是我的快速安装程序: var express = require('express'), RedisStore = require('connect-redis')(express), Config = require('./config/config'), cluster = require("cluster"), QueryManager = require('./service/query_manager'), app = express(); // — Index — // function renderSplash(req, res) { res.render(…); } function renderIndex(req, res) { res.render(…); } app.get('/', function(req, res) { if(req.session.user === null) { renderSplash(req, res); } else { renderIndex(req, […]

Node.js Express / less-middleware&Bootstrap 3

我最近开始学习Node.js,我试图设置一个使用less-middleware的快速安装,并且希望使用Bootstrap 3 less文件。 我看了一下,但只能findBootstrap 2的教程。 这是我的代码到目前为止: /** * Module dependencies. */ var express = require('express'); var routes = require('./routes'); var user = require('./routes/user'); var http = require('http'); var path = require('path'); var app = express(); // all environments app.set('port', process.env.PORT || 3000); app.set('views', path.join(__dirname, 'views')); app.set('view engine', 'jade'); app.use(express.favicon()); app.use(express.logger('dev')); app.use(express.json()); app.use(express.urlencoded()); app.use(express.methodOverride()); app.use(express.cookieParser('your secret […]

重复组正则expression式的urlpath,node.js

我正在试图提取正则expression式与正则expression式参数。 所以,例如: www.test.com/something/:var/else/:var2 我正在尝试使用这个正则expression式: .*\/?([:]+\w+)+ 但我只得到最后匹配的组。 有谁知道如何匹配两个:var和:var2 。

在明确的js会话中未定义的错误

我想保存会话参数中的数据。 /* Modules */ /* App Settings */ // session settings app.use(express.cookieParser()); app.use(express.session({secret: '1234567890QWERTY'})); app.get('/', function(req,res){ if(req.session.param){ console.log('OK!'); }else{ console.log('not found session data'); } }); app.listen(app.get('port')); 当我运行这个代码 TypeError: Cannot read property 'param' of undefined at C:\Users\frknbasaran\campusca\app.js:25:16 提前致谢 会话将不会工作,除非你有这3个顺序: app.use(express.cookieParser()); app.use(express.session({secret: '1234567890QWERTY'})); app.use(app.router);

Nodejs将3个会话对象传递给所有视图

我想将会话对象传递给我的所有视图,所以我不必在每个路由中手动传递它们。 在我用来学习nodejs的书中,有一个例子,但是对于expression式2: //session routes module.exports = function(app){ app.dynamicHelpers({ session: function(req, res){ return req.session; } }); app.get(…… res.render(…. …. } 所以dynamicHelpers已被replace。 我在stackoverflow上find了一些东西: app.use(function(req, res, next){ res.locals.session = req.session; next(); }); 我也发现快速文档 app.use(function(req, res, next){ app.locals.session = req.session; next(); }); 无论如何,在我看来我有像<%=session.user%>和我的路线中的某处我做req.session.user = "John" ,我总是得到500内部错误:会话未定义。 有什么想法吗 ?

在Express.js中不能使用connect-redis

我正在学习Express.js,并学习了如何使用cookie会话模块处理会话。 我试图使用快速会话,但我有问题。 以前,我使用cookie会话而不是快速会话,而memoryStore完美运行。 但是,我不能使用cookie-session的connect-redis,因为这个原因,我安装了express-session,但是使用它,我不能使用任何types的存储,也不能使用memoryStore。 Redis DB在redistogo上,它的URI看起来像这样:(为了安全起见,尽pipe这只是为了实践)redis:// redistogo:e34d3 ******************* **** f4bb@albacore.redistogo.com:10072 / 但是,当我运行“节点应用程序”,它打印一个错误。 我的package.json: { "name": "application-name", "version": "0.0.1", "author": "Me <me@gmail.com>", "license": "MIT", "private": true, "scripts": { "start": "node app" }, "dependencies": { "express": "4.xx", "cookie-parser": "1.xx", "express-session": "1.xx", "connect-redis": "2.xx" } } “npm ls”显示如下: ├─┬ connect-redis@2.0.0 │ ├── debug@0.8.0 │ └── redis@0.10.1 ├─┬ cookie-parser@1.0.1 […]

从Javascript中的鸣叫中删除“RT @name”

所以,我一直在使用node-webkit编写一个使用node.js和Javscript的twitter客户端。 而且,最终我已经认识到转发是通过文本传递的。 RT @somename: status 我试过find一些正则expression式来取代RT @someone:完全没有任何东西。 但我一直没有find任何东西。 我不是很好,也不理解正则expression式,所以任何帮助将不胜感激!

在MySQL表中的阿拉伯文字?

我有一个小问题。 Mysql支持阿拉伯语的权利。 当我在表中存储数据,它是正常的,一切工作正常,但是当我发出一个SQL来检索数据。 我得到的阿拉伯文字为? 分数。 我已经改变了表格和列的字符集,但仍然是同样的问题。 我正在使用节点快递框架。