koa2 vue搭建博客-構建篇

seemnite項目是本人作的一個博客,主要目的是學習 node koa2 mongoose
項目預覽
本文主要講述項目的過程,但願對一樣困惑的朋友提供一些參考javascript

在開始前,我簡略的跑了下如下庫,並對ssr有了必定的認識html

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

不過,過程是一步一步的,在構建的過程學習了不少, 也遇到了不少問題,一開始我是想用webpack4構建,全部的組件也都是next版的,但最後‘renderer.renderToString’一直報錯,爲了繼續學習koa,最後放棄了,回滾到webpak3.vue

當時的心情可想而知(一萬隻草泥馬),koa還要繼續。webpack3簡單了不少,也有一些問題。java

  • 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源碼
後續還會繼續完善,麻雀雖小五臟俱全,後面還有一篇關於服務器部署的node

相關文章
相關標籤/搜索