首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  程序员

[Nobibi] 一个自己开发的类 V2EX 开源问答社区,含前后台(nextjs+koa+mongo)

  •  
  •   seawind8888 · 107 天前 · 1032 次点击
    这是一个创建于 107 天前的主题,其中的信息可能已经有所发展或是发生改变。
    • 前端项目 - 考虑静态化 SEO 需使用服务端渲染框架,并友好 antd 组件 React 生态支持,所以使用 nextjs
    • 后台项目 - 后台项目使用开源项目antd-admin二次开发,技术栈 react+dva+umijs
    • 后端接口项目 - 基于 koa2 + mongodb 结构,全 es6 语法(本来想用 node10,但考虑兼容问题,还是用 babel-register 了)
    • 线上预览: http://47.244.103.124:3006/

    (开发不易,走过路过赏个小星星呗~)

    效果预览

    image

    image

    image

    包含功能

    • 注册
    • 登录( Token )
    • 修改密码
    • 修改资料
    • 发布主题
    • 评论主题
    • 频道切换
    • 最热讨论
    • 点赞
    • 响应式布局
    • 收藏
    • 分享(待开发)
    • 积分(待开发)

    架构图

    image

    遇到问题

    • 无法使用 antd 的Layout组件,页面会抖动
    • pages 目录下 js 文件文件引入 less,在 router 跳转后样式会失效(解决:把样式统一放到一个 less 文件)
    • getInitialProps 为 next 服务端渲染钩子函数,layout 无法使用 getInitialProps 方法 https://github.com/zeit/next.js/issues/928
    • next>7.0.2 会报 antd theme 样式文件引入错误,需更改.babelrc 文件配置 https://github.com/zeit/next.js/issues/6181
    8 回复  |  直到 2019-07-30 16:11:24 +08:00
        1
    oxogenesis   107 天前
    开源问答社区系统
        2
    seawind8888   106 天前
    @oxogenesis 是的
        3
    laminux29   106 天前
    MongoDB 拿来偷懒当关系型数据库用,题主胆子真大。
        4
    seawind8888   106 天前
    @laminux29 mongo 用的比较多,可以自己改 mysql 中间件二次开发
        5
    hyyou2010   106 天前
    不错,赞。

    近期我也写了论坛程序,作为 react+nodejs 学习的练习实践,有意尽量不使用第三方框架,界面比你这个差好多。
        6
    whoami9894   106 天前 via Android
    @laminux29 不太明白,具体是指?
        7
    seawind8888   106 天前
    @hyyou2010 还是用组件库搭起来快一点,评论组件 antd 组件库有现成,而且很多都不需要考虑响应式的问题
        8
    laminux29   106 天前
    @whoami9894 MongoDB 不是关系型数据库,缺少很多 ACID 与事务所必须得功能,然而题主做的这种管理系统又需要这些功能。
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   4275 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 22ms · UTC 03:13 · PVG 11:13 · LAX 19:13 · JFK 22:13
    ♥ Do have faith in what you're doing.