nodeclub为什么要用修改第三方库源码的方式来实现功能呢?
在README.md看如下说明:
小量修改了两个依赖模块:node-markdown,express
- node-markdown/lib/markdown.js
allowedTags 添加:
embed //支持 flash 视频
table|thead|tbody|tr|td|th|caption //支持表格
allowedAttributes 添加:
embed:'src|quality|width|height|align|allowScriptAccess|allowFullScreen|mode|type'
table: 'class'
上面的代码块是为了支持embed和table标签,但node-markdown完全支持自定义allowedTags和allowedAttributes,详见:node-markdown
express/node_modules/connect/lib/middleware/csrf.js 添加:
if (req.body && req.body.user_action === 'upload_image') return next();
上面的代码块是为了在图片上传时不做csrf检查,可以用下面的代码解决:
var csrf = express.csrf();
app.use(function(req, res, next){
// ignore uplaod image
if (req.body && req.body.user_action === 'upload_image')
return next();
csrf(req, res, next);
});
个人认为用修改第三方库源码的方式来实现功能不是一个很好的办法,请各位童孩拍砖。
3 回复
支持以组合或者继承的方式添加或修改功能!
这个需要顶,因为如果将来组件版本升级的时候,要修改很麻烦。 最好是组合的方式来做。
这个也是我很疑惑的问题,维护代码很麻烦啊