koa2 vue搭建博客-构建篇

seemnite项目是本人做的一个博客,主要目的是学习 node koa2 mongoose
项目预览
本文主要讲述项目的过程,希望对同样困惑的朋友提供一些参考

在开始前,我简略的跑了下以下库,并对ssr有了一定的认识

webpack的配置主要是参(cao)考(xi) vue-hackernewseasy-mock

不过,过程是一步一步的,在构建的过程学习了很多, 也遇到了很多问题,一开始我是想用webpack4构建,所有的组件也都是next版的,但最后‘renderer.renderToString’一直报错,为了继续学习koa,最后放弃了,回滚到webpak3.

当时的心情可想而知(一万只草泥马),koa还要继续。webpack3简单了很多,也有一些问题。

  • document,window in undefind 未找到
主要问题还是组件生命周期钩子函数,具体的可以看vue-ssr文档的说明。
该避免在 beforeCreate 和 created 生命周期时产生全局副作用的代码,请将副作用代码移动到 beforeMount 或 mounted 生命周期中。
  • 前端路由出不来
//添加了路由的匹配
  router.get('*', require('./middlewares/view').render(app))
  app.use(router.routes()).use(router.allowedMethods())
  • tags 已经存在的及新增的怎么存入 mongodb
await Promise.all(
  body.tags.map(async tag => {
    let value = await Tag.findOne({ name: tag })
    if (!value) {
       value = await Tag.create({ name: tag })
     }
     return value.id
  })
)

github源码
后续还会继续完善,麻雀虽小五脏俱全,后面还有一篇关于服务器部署的

相关推荐