首页  >  文章  >  web前端  >  新手如何通过Vue.js + Node.js打造个人博客

新手如何通过Vue.js + Node.js打造个人博客

零到壹度
零到壹度原创
2018-03-26 10:34:472817浏览

本文主要给大家介绍了新手如何通过Vue.js + Node.js打造个人博客,文中通过示例代码介绍的非常详细,对大家学习具有一定的参考学习价值,希望能帮助到大家。

方案

  • UI风格:主要参考Randy's Blog的风格,并加入自己的一点想法(主要是为了偷懒)。

  • 前端页面:基于Vue2.0的响应式SPA,啊?你问我为什么?就如《关于》中的自我介绍:我自认为擅长Vue的SPA开发。

  • 后台:前端工程师通向全栈的捷径:Node.js。负责写接口及渲染静态页面。

  • 数据库:原计划是用MongoDB,但为了赶进度,索性数据库都不用了,第一版就先这样吧。

  • 文章:参考hexo用markdown语法写好文章再转成html的做法。也是在本地编辑好md格式的文章,上传到服务器,Node.js直接读取md文件并转化为html,返回给前台,这也是为什么暂时不需要数据库的原因。

  • 部署:AWS,一年时间免费使用哦!你问我一年后怎么办?God knows!也许一年时间已经让我经历了从入门到放弃。

扬帆!起航!

  1. 页面布局:自己看Cloud's Blog,简单介绍下。第一屏为一张壁纸宽高均为100%铺满整个可视区域,内容有博客名称、小标题及三个关于博主的链接;点击向下箭头滚动进入第二屏正题,分为四个Tab模块:【首页】、【文章】、【作品】、【关于】。默认为【首页】,即最新一篇文章详情,【文章】为文章列表,点击可阅读文章内容,【作品】为作品列表,这部分还没完成,【关于】为关于博主的一些介绍。PS:首屏的壁纸在Google图片里找了一上午才找到这张还算满意的,考虑到手机端壁纸是居中铺满整个可视区域,要找到一张PC端手机端效果都还行且逼格不能太低的图片真的不容易,BTW,博主还是选择困难症患者。

  2. 前端开发:从Vue脚手架开始


  3. # 全局安装 vue-cli
    $ npm install --global vue-cli
    # 创建一个基于 webpack 模板的新项目
    $ vue init webpack blog
    # 安装依赖,走你
    $ cd blog
    $ npm install
    $ npm run dev
  4. 然后安装Vue-router用于SPA路由及vue-resource或axios用于Ajax。

    $ npm install --save vue-router
    $ npm install --save axios
    # vue官方推荐的ajax库不再是vue-resource,而是axios

    然后就可以开始码静态页面了,根据第一步页面布局的思路写出静态页面应该不是什么难事,其中需要调用第三步中node.js提供的接口,这里就不再多说了。完成静态页面后编译

    $ npm run build
  5. 后端开发:创建服务端目录结构并安装express框架及marked用于将md文件转为html

    $ mkdir blog-server && cd blog-server
    $ mkdir public
    $ npm install --save express$ npm install --save marked

    写接口,目前主要有三个接口。

    渲染静态页面,将第二部编译出来的静态文件及md格式的文章文件拷入public文件夹,并用express内置的中间件指定public文件夹为静态资源文件的根目录并缓存。因为是单页应用,所以记得要处理好404错误。

    # server.jsvar express = require('express');var app = express();
    app.use(express.static('public',{maxAge:60*60*24*30}));
    app.get('/',function(req,res){
     res.sendFile('/index.html',{root: __dirname + '/public/'});
    });
    app.listen(80);
    1. 获取文章列表接口。fs.readdir方法读取md文件所在文件夹,返回所有md文件的文件名即文章标题、创建时间、文章路径,并按创建时间排序渲染在【文章】页。

    2. 文章内容接口。根据第一个接口返回的文件名及路径,用fs.readFile方法读取md文件的内容并用marked转为html并返回给客户端,渲染在文章内容页。

    3. 首页内容接口。类似接口2,读取最新一篇文章并返回。记得处理跨域问题。

      app.all('*', function(req, res, next) {
      res.header("Access-Control-Allow-Origin", "*");
      res.header("Access-Control-Allow-Headers", "X-Requested-With");
      res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS");
      res.header("X-Powered-By",' 3.2.1')
      res.header("Content-Type", "application/json;charset=utf-8");
      next();
      });
  6. 部署

  • 申请AWS(亚马逊云主机),一年免费试用,需填信用卡信息。实例一台EC2,win或Linux系统,推荐Linux。开放相应端口并安装node.js。

  • 安装PM2,并运行第三步的server.js服务,并让PM2随系统启动。

    $ npm install -g PM2
    $ pm2 start server.js
    $ pm2 startup

    此时我们的博客系统已经运行在EC2上了。

    购买域名。在腾讯云上购买的xyz域名,第一年8块钱。解析到该EC2的公网IP上,即可通过域名访问。


以上是新手如何通过Vue.js + Node.js打造个人博客的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn