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

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

  •  
  •   seawind8888 ·
    seawind8888 · 2019-07-30 10:51:20 +08:00 · 2525 次点击
    这是一个创建于 1947 天前的主题,其中的信息可能已经有所发展或是发生改变。
    • 前端项目 - 考虑静态化 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
    oxogenesis
        1
    oxogenesis  
       2019-07-30 11:08:16 +08:00
    开源问答社区系统
    seawind8888
        2
    seawind8888  
    OP
       2019-07-30 11:13:40 +08:00
    @oxogenesis 是的
    laminux29
        3
    laminux29  
       2019-07-30 11:36:21 +08:00
    MongoDB 拿来偷懒当关系型数据库用,题主胆子真大。
    seawind8888
        4
    seawind8888  
    OP
       2019-07-30 11:41:03 +08:00
    @laminux29 mongo 用的比较多,可以自己改 mysql 中间件二次开发
    hyyou2010
        5
    hyyou2010  
       2019-07-30 12:02:12 +08:00
    不错,赞。

    近期我也写了论坛程序,作为 react+nodejs 学习的练习实践,有意尽量不使用第三方框架,界面比你这个差好多。
    whoami9894
        6
    whoami9894  
       2019-07-30 12:25:21 +08:00 via Android
    @laminux29 不太明白,具体是指?
    seawind8888
        7
    seawind8888  
    OP
       2019-07-30 13:49:41 +08:00
    @hyyou2010 还是用组件库搭起来快一点,评论组件 antd 组件库有现成,而且很多都不需要考虑响应式的问题
    laminux29
        8
    laminux29  
       2019-07-30 16:11:24 +08:00
    @whoami9894 MongoDB 不是关系型数据库,缺少很多 ACID 与事务所必须得功能,然而题主做的这种管理系统又需要这些功能。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5274 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 05:43 · PVG 13:43 · LAX 21:43 · JFK 00:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.