seemnite項目是本人作的一個博客,主要目的是學習 node
koa2
mongoose
項目預覽
本文主要講述項目的過程,但願對一樣困惑的朋友提供一些參考javascript
在開始前,我簡略的跑了下如下庫,並對ssr有了必定的認識html
webpack的配置主要是參(cao)考(xi) vue-hackernews 和 easy-mock前端
不過,過程是一步一步的,在構建的過程學習了不少, 也遇到了不少問題,一開始我是想用webpack4構建,全部的組件也都是next版的,但最後‘renderer.renderToString’一直報錯,爲了繼續學習koa,最後放棄了,回滾到webpak3.vue
當時的心情可想而知(一萬隻草泥馬),koa還要繼續。webpack3簡單了不少,也有一些問題。java
主要問題仍是組件生命週期鉤子函數,具體的能夠看 vue-ssr文檔的說明。
該避免在 beforeCreate 和 created 生命週期時產生全局反作用的代碼,請將反作用代碼移動到 beforeMount 或 mounted 生命週期中。
//添加了路由的匹配 router.get('*', require('./middlewares/view').render(app)) app.use(router.routes()).use(router.allowedMethods())
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