nodebb源码阅读(3)


通过前几天的学习和探索我知道要向nodebb里添加“回复post”的功能就要编写新的插件,参考nodebb编写插件,以及源码里现有插件的编写方式,目录结构如下:

写在nodebb/node_modules/目录下的插件

具体写法可分为以下几步:

  • 找到合适的钩子放在plugin.json里,我找到三个要用的钩子,其中"hook": "filter:post.getPosts"可以在用户点击某一个topic是获取到整个页面所有topic的信息
{ 
 "id": "nodebb-plugin-post-comments", 
   "library": "./library.js",  
   "hooks": [    { "hook": "filter:scripts.get", "method": "addScripts" },   
                 { "hook": "static:app.load", "method": "init" },    
                 { "hook": "filter:post.getPosts", "method": "showPosts" } 
            ],  
"staticDirs": {    "lib": "public/lib"  }
}
  • 去library.js里实现hooks里的method,addScripts函数主要负责将main.js文件加入进来;init是一个初始化函数,showPosts函数中要用到init传过来的app;showPosts里是一个get请求,当用户触发一个topic页面时,将所有posts数据传至main.js(前端)进行处理(处理这个get请求的前提是在main.js里有一个对应的ajax请求)
var bodyParser = require('body-parser');
var app;

var comments = {
    addScripts: function(scripts, callback) {
    scripts.push('plugins/nodebb-plugin-post-comments/lib/main.js');
    callback(null, scripts);
    },

    init: function(params, callback) {
        app = params.router,
        callback();
    },

    showPosts: function(data,callback) {

        app.get('/post/getComments',function(req,res,callback) {

            res.json(JSON.stringify(data));
        })
        callback(null, data);
    },
};

module.exports = comments;
  • 对后端传过来的数据进行渲染(目前未实现,后续更新......)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,084评论 19 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,136评论 25 709
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 47,147评论 6 342
  • 响应式布局的理解 响应式开发目的是一套代码可以在多种终端运行,适应不同屏幕的大小,其原理是运用媒体查询,在不同屏幕...
    懒猫_6500阅读 4,202评论 0 0
  • 截至昨天,阿图的《敦刻尔克》三刷成就已达成。 好片就是值得一刷再刷,每刷一遍都会有新的体会。 《敦刻尔克》把诺兰巨...
    Sir电影阅读 8,248评论 0 17

友情链接更多精彩内容