之前用 Express 写的博客系统 Spruche (德语:“箴言”),因为偷懒,用了多说,前两个星期看见了多说要关闭的通知,吃惊秒,为多说默哀三秒后,意识到掌握核心技术的重要性。接下来抽空给系统写了个支持第三方登陆的 jQuery 评论框插件,同时也给她升了个级。
Spruche 拥有以下简单的功能与朴实的特性:
默认主题直接丢个链接:默认主题
还是给个截图拉长以下 V2EX 的页面:
评论框上个截图。
有没有觉得很情切很眼熟,没错,样式是拿 B 站的。是的,就是在 Chrome 里按 F12 抄的样式(听说这里特别注重版权许可,我这么明目张胆地抄会不会被人打?会不会被被封号)。
评论框为啥要叫 Servant 这么中二的名字,因为是账号是从微博那边召唤过来的,就像是召唤英灵一样,对的,我就是你们的 master 。
别看样式是抄的,评论框该有的功能还是有的:登陆、点赞、踩之类的,迅速过一下配置参数。
var defaults = {
placeholder: '请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。',
wbAppKey: '', // 新浪微博开发者引用 appKey
commentAble: true, // 是否可以发评论
announcement: '', // 评论框公告
pageNumber: 10, // 每页评论个数
childrenNumber: 10, // 子级评论每页个数
threadKey: '', // 页面唯一 key
title: '' // 页面标题
};
后面做得比较搓,主要因为没时间,有时间也要偷个懒。
因为楼主要用 async ,还要求 MySQL 拥有支持 4 字节 emoji 编码的 utfmb4 ,所以对环境的要求还挺高的:
评论框这么复杂后续也少不了 redis , mysql 跟不上节奏。
模版引擎用的是 ejs ,相关文档和接口定义后续整理。
写在最后,求颗星星: GitHub
1
Trim21 2017-04-02 05:49:59 +08:00
呃....
install 后面是不是少了什么.. |
3
Systemd 2017-04-02 06:50:12 +08:00 via Android
Sprüche ?
|
4
cocochan 2017-04-02 08:47:03 +08:00 via iPhone
赞
|
5
franklinyu 2017-04-02 08:56:21 +08:00
协议已经是 Apache 了吧, README 没改
|
6
slixurd 2017-04-02 11:40:08 +08:00
鄙视 MySQL 是政治正确么...
你能跑到单表上亿的数据么,没有上亿的数据说什么 MySQL 跟不上节奏........ |
7
dphdjy 2017-04-02 11:51:15 +08:00
看图标加 star
|
8
garipan 2017-04-02 11:54:00 +08:00
23333333333333
|
9
chuanwu 2017-04-02 12:06:26 +08:00
楼主你想说的是 utf8mb4 吧?
还有我不太明白你说评论框这么复杂, mysql 跟不上节奏,你能说下具体的场景么? |
10
Aspx 2017-04-02 12:33:40 +08:00
还好我这种用静态博客的不需要评论
|
11
Cononico OP @slixurd 什么时候鄙视 mysql 了,不管你跑几个表单有几条记录,频繁改动的数据(比如几个人一直重复在哪里点赞踩)并不适合一开始就往数据库里直接搞。再比如新消息回复的队列,没必要往数据库里扔吧,这次读完了之后下次就不用了,用个 redis 有什么错。虽然博客系统可能没什么人点赞,但用先用缓存固定时间在导入 mysql 有什么错?合适的地方用合适的东西,再说明一下,没有鄙视 mysql ,否则我也不会用 mysql 。
|
12
Cononico OP @chuanwu 对的,漏了个 8 。跟不上节奏,不是说他慢,毕竟一个博客请求很低看不出效果,说的是评论系统中有些地方不太适合直接往里面塞。如消息回复提醒队列,没必要又建一张中间表,那我又得同时操作几张表换来一个 length 可能为 0 的队列,实在有点麻烦,放在缓存中用起来也方便。另外用户读完了,这条记录也用不着了,我不能直接 delete 掉,这对表不好,我只能加个字段证明他没用了,后来一张表里记着一大列用不上的记录。
|
13
slixurd 2017-04-02 13:07:36 +08:00
@Cononico
数据量小用 MySQL 做消息回复提醒没什么不好的... 加个中间件只会引入额外的复杂度 合不合适不能只看功能... 我觉得 SOA+RPC+服务发现也是很合理的架构.... 但是肯定不会在这个量级这个场景下去做..... |
14
ivmm 2017-04-02 13:11:57 +08:00 2
如果单独把评论拿出来做,获得的关注度绝对会比整合后的一个博客系统高
|
15
ooTwToo 2017-04-02 15:14:20 +08:00 via iPhone
|
16
jexb 2017-04-02 18:30:16 +08:00 via iPhone
node.js 是搞笑得
|
17
diefishfish 2017-04-03 15:49:58 +08:00
@ooTwToo #15 肉肉那个怎么获取文章评论数插入到文章页面里...他个懒癌不更新
|
18
hpu423 2017-04-03 20:28:45 +08:00
不错
|
19
ooTwToo 2017-04-04 10:04:50 +08:00 via iPhone
@diefishfish 啊?底部貌似有的
|
20
diefishfish 2017-04-04 10:46:59 +08:00
@ooTwToo #19 不不不我说的是单独获取出来放在文章标题下面的那种!
|
21
ooTwToo 2017-04-04 22:19:48 +08:00 1
@diefishfish 可以通过 js 获取到条数啊
|
22
diefishfish 2017-04-07 21:20:24 +08:00
@ooTwToo #21 求 js
|
23
ooTwToo 2017-04-08 11:08:14 +08:00 via iPhone
@diefishfish 获取元素组的 length
|