首先讲讲思路,我要基于什么框架呢,
首先讲一下我的需求
- 我需要一个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
启动项目:
$ npm run dev
浏览器打开 localhost:7001就可以看到 hi, egg
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标准,但是各种规定也是挺麻烦的。我在想要不要继续用它了…