DRY in Nodejs Express
DRY in Nodejs Express
我在Node.js中遵循DRY有一点问题。如何在不同的路由上使用csrf,而不需要在需要csrf令牌的不同地方复制粘贴代码?
app.js(主入口点)
var csrf = require('csurf');
var csrfProtection = csrf({cookie: false});
//routes
var route1 = require('./app/routes/r1');
app.use('/', route1);
var route2 = require('./app/routes/r2');
app.use('/dashboard', r2);
我想在两个路由上使用csrfProtection,但不确定如何在每个文件r1.js和r2.js中添加下面的代码
var csrf = require('csurf');
var csrfProtection = csrf({cookie: false});
routes.get('/login', csrfProtection, function(req,res){
res.render('login', {csrfToken: req.csrfToken()});
});
好的。我明白了。需要重构我的代码在app.js
var csrf = require('csurf');
var csrfProtection = csrf({cookie: false});
var route1 = express.Router();
require('./app/routes/r1')(route1, csrfProtection);
app.use('/', route1);
var route2 = express.Router();
require('./app/routes/r2')(route2, csrfProtection);
app.use('/dashboard', route2);
then in my routes (r1.js)
module.exports = function(router, csrfProtection){
router.get('/login', csrfProtection, function(req,res){
res.render('login', {csrfToken: req.csrfToken()});
});
}
我也可以在我的其他路由中使用它
相关文章:
- 在Nodejs中Express输入DEBUG=app时权限被拒绝/bin
- Nodejs和express路由,如何处理客户端的承诺
- nodejs/express包含本地js文件
- 将路由处理程序委托给NodeJS+Express中的其他模块
- NodeJS Express中的分页方法
- AngularJS路由服务器端支持(NodeJS+express)
- 无法读取未定义的属性 - NodeJS,Express,Mongoose
- 如何在不使用 express 的情况下在 nodejs 中创建会话
- 有没有办法在express nodejs中将参数传递给路由器
- 刷新Express NodeJS API的内容
- 如何解析Express/ NodeJs中缺少内容类型的HTTP请求,通过假设一个默认的内容类型
- Express NodeJS中的partials错误
- 在Express NodeJS服务器上接收和读取JsonString
- 如何使用Express Nodejs在响应中返回Json列表的子集
- 如何使用express (NodeJS)将大量文件从服务器发送到客户端
- 无法打印套接字发出的值.IO和express-nodejs
- 运行套接字错误.IO和express-nodejs设置
- 在express nodejs应用中无需刷新页面即可更新待办事项列表
- 前端是Meteor,后端是Express (NodeJS)
- 更好的回调Javascript代码在Express/NodeJs