React + Node 单页应用「三」API 设计 & 项目部署

关于项目

项目地址
预览地址前端

记录最近作的一个 demo,前端使用 React,用 React Router 实现前端路由,Koa 2 搭建 API Server, 最后经过 Nginx 作请求转发。node

这是第三篇,也是最后一篇,内容关于整个项目的 API 设计,以及最后的项目部署。
react

前端 Server

项目打包后的代码集中在 /build/ 目录下,create-react-app 提供了 serve -s build 命令启动前端 Server,固然,还能够选择其余工具。如今,前端 server 跑在开发机的 3000 端口上。nginx

接下来,咱们配置项目的 API。git

API 设计

由于先后端分离,API 能够独立设计,能够走独立域名,例如 api.github.com,也能够走独立的根目录,例如 github.lijundong.com/api/auth,咱们这里选择独立根目录形态。github

其次请求方式须要建议作区分,能够参考 Github API,GET、POST、PUT、DELETE 区分开,使得 API 功能结构功能清晰,很值得借鉴。shell

路径中的 /api 用于 Nginx 转发时做区分,咱们在设置后端 API 时,以下,后端

const router = require('koa-router')();
const Comment = require('./comment.js');
const User = require('./user.js');
const Home = require('./home.js');
const Auth = require('./auth.js')
router.get('/', Home.renderIndex)
      .get('/login', User.renderLogin)
      .get('/signup', User.renderSignup)
      .get('/getcomment', Comment.getComment)
      .get('/getauthuser', Auth.getAuthUser)
      .get('/auth', Auth.getCode)
      .post('/signup', User.signup)
      .post('/login', User.login)
      .post('/newcomment', User.checkAuth, Comment.newComment)
      .post('/delcomment', User.checkAuth, Comment.delComment)

最后 Node 服务在部署时能够直接选择 node app.js 的方式,固然,这种方式,在遇到 Server 挂了时,得人工重启,因此我推荐使用一些自动重启的工具,例如 forever、nodemon 等。api

Nginx 配置

下面分别是 AP 和 前端 Server 的 Nginx 配置,后端服务 /api 路径走 127.0.0.1:3300,前端路由走 127.0.0.1:3000app

server {
    listen 80;
    server_name github.lijundong.com;
    access_log /var/log/nginx/github.log;
    location /api/ {
        proxy_pass //127.0.0.1:3300/;
    }
    location / {
        proxy_pass //127.0.0.1:3000/;
        }
}

意识流

大三,认识了罗老师以后,想赚钱,因而开始接外包,不爽于没有后端支持,本身开始学 Node 相关的东西,固然,也只局限于使用,刚开始用 Express ,毕设想学点东西,又看了 Koa,但如今还只是局限在 Node Coder,若是想作一名 Node Develper,还得深刻学点底层实现的东西,这也是下一步的方向。

相关文章
相关标签/搜索