首先講講思路,我要基于什麼架構呢,
首先講一下我的需求
- 我需要一個node服務端,并且是可以拓展的
- 我要安全度還可以點的
- 我需要比較新的東西,也是拿來學習的,之前會一些express
- 不會其他語言..
看了看人家說的
Express 簡單、實用,路由中間件等五髒俱全 最著名的Web架構
Derby.js && Meteor 同構 前後端都放到一起,模糊了開發便捷,看上去更簡單,實際上上對開發來說要求更高
Sails、Total 面向其他語言,Ruby、PHP等 借鑒業界優秀實作,也是 Node.js 成熟的一個标志
MEAN.js 面向架構 類似于腳手架,又期望同構,結果隻是蹭了熱點
Hapi和Restfy 面向Api && 微服務 移動網際網路時代Api的作用被放大,故而獨立分類。尤其是對于微服務開發更是利器
ThinkJS 面向新特性 借鑒ThinkPHP,并慢慢走出自己的一條路,對于Async函數等新特性支援,無出其右
Koa 專注于異步流程改進 下一代Web架構
Egg 基于Koa,在開發上有極大便利 企業級Web開發架構
看了一下感覺egg最屌,那我就用EGG!第一次聽…
首先甩一個官方api,看看快速入門http://eggjs.org/zh-cn/intro/quickstart.html,然後熟悉一下基礎子產品。其實架構大多都差不多,看你業務需求去選架構就可以了。
第一章,開始入門
需要準備的東西
node 最新版本的最好大于8.9,并且最好使用LTS版本
- 我們先跟着快速入門操作一下
$ npm i egg-init -g $ egg-init egg-example --type=simple $ cd egg-example $ npm I
- 啟動項目:
浏覽器打開 localhost:7001就可以看到 hi, egg$ npm run dev
- hello world的編寫
去目錄 app/controller/home.js裡面,可以看到
'use strict';
const Controller = require('egg').Controller;
class HomeController extends Controller {
async index() {
this.ctx.body = 'hi, egg';
}
}
module.exports = HomeController;
我們把 this.ctx.body = ‘hi, egg’; 替換成hello-world就可以了。但是他的作用是什麼呢?
不着急我們接着往下面看
- 配置路由映射:// app/router.js
module.exports = app => { const { router, controller } = app; router.get('/', controller.home.index); };
這時候應該就恍然大悟了,get監聽了 / ,然後給他轉到 controller.home.index,然後index方法給我們傳回了hello-world
- 再看看目錄結構
egg-example ├── app │ ├── controller │ │ └── home.js │ └── router.js ├── config │ └── config.default.js └── package.json
最後通看了一遍,發現這個架構确實比express标準,但是各種規定也是挺麻煩的。我在想要不要繼續用它了…