通過(guò)前幾天的學(xué)習(xí)和探索我知道要向nodebb里添加“回復(fù)post”的功能就要編寫(xiě)新的插件,參考nodebb編寫(xiě)插件,以及源碼里現(xiàn)有插件的編寫(xiě)方式,目錄結(jié)構(gòu)如下:

寫(xiě)在nodebb/node_modules/目錄下的插件
具體寫(xiě)法可分為以下幾步:
- 找到合適的鉤子放在plugin.json里,我找到三個(gè)要用的鉤子,其中
"hook": "filter:post.getPosts"可以在用戶(hù)點(diǎn)擊某一個(gè)topic是獲取到整個(gè)頁(yè)面所有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里實(shí)現(xiàn)
hooks里的method,addScripts函數(shù)主要負(fù)責(zé)將main.js文件加入進(jìn)來(lái);init是一個(gè)初始化函數(shù),showPosts函數(shù)中要用到init傳過(guò)來(lái)的app;showPosts里是一個(gè)get請(qǐng)求,當(dāng)用戶(hù)觸發(fā)一個(gè)topic頁(yè)面時(shí),將所有posts數(shù)據(jù)傳至main.js(前端)進(jìn)行處理(處理這個(gè)get請(qǐng)求的前提是在main.js里有一個(gè)對(duì)應(yīng)的ajax請(qǐng)求)
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;
- 對(duì)后端傳過(guò)來(lái)的數(shù)據(jù)進(jìn)行渲染(目前未實(shí)現(xiàn),后續(xù)更新......)