Egg.js快速入门(1)

简介: Egg.js快速入门(1)

Egg.js

基于Node.js和Koa企业级应用开发框架


特性

提供基于Egg的定制上层框架的能力

高度可扩展的插件机制

内置多进程管理

基于Koa开发性能优异

框架稳定,测试覆盖率搞

渐进式开发


涉及内容

vant ui

vue-cli3

moment.js

Egg.js

mysql

前后端联调


开发环境

Egg.js


https://eggjs.org/zh-cn/intro/quickstart.html


$ node -v
v10.16.0
$ mkdir egg-demo && cd egg-demo
$ npm init egg --type=simple
$ cnpm i
$ npm run dev

http://127.0.0.1:7001/


路由

app/router.js


'use strict';
/**
 * @param {Egg.Application} app - egg application
 */
module.exports = app => {
  const { router, controller } = app;
  router.get('/', controller.home.index);
};

GET传参

1、方式一

/product/detail?id=110


// 路由
router.get('/product/detail', controller.product.detail);
// 控制器
async detail() {
    const { ctx } = this;
    console.log(ctx.query); // { id: '110' }
    ctx.body = `id=${ctx.query.id}`;
}

2、方式二

/product/detail2/110


// 路由
router.get('/product/detail2/:id', controller.product.detail2);
// 控制器
async detail2() {
    const { ctx } = this;
    console.log(ctx.params); // { id: '110' }
    ctx.body = `id=${ctx.params.id}`;
}

POST请求


// 配置文件关闭csrf
config.security = {
    csrf: {
      enable: false,
    },
  };
// 路由
router.post('/product/create', controller.product.create);
// 控制器
async create() {
    const { ctx } = this;
    console.log(ctx.request.body); // { name: 'Tom' }
    const {name, age} = ctx.request.body;
    ctx.body = {name, age};
  }

POST请求 /product/create


Content-Type application/x-www-form-urlencoded
Content-Type application/json
name: "Tom"

返回


{
    "name": "Tom"
}

PUT请求

/product/update/110

// 路由
router.put('/product/update/:id', controller.product.update);
// 控制器
async update() {
    const { ctx } = this;
    console.log(ctx.params); // { id: '110' }
    ctx.body = {id: ctx.params.id};
  }

DELETE请求

/product/delete/110

// 路由
router.delete('/product/delete/:id', controller.product.delete);
// 控制器
async delete() {
    const { ctx } = this;
    console.log(ctx.params); // { id: '110' }
    ctx.body = {
        id: ctx.params.id
    };
  }

Service

app/service/product.js

'use strict';
const Service = require('egg').Service;
class productService extends Service {
  async index() {
      return {
          name: "Tom",
          age: 18
      };
  }
}
module.exports = productService;
// 路由
router.get('/product', controller.product.index);
// 修改控制器使用service
async index() {
    const { ctx } = this;
    const res = await ctx.service.product.index();
    ctx.body = res;
  }

访问后返回: /product/

{
    "name": "Tom",
    "age": 18
}


相关文章
|
存储 监控 JavaScript
Node.js 性能平台5分钟快速入门
首先,确保拥有阿里云账号并开通服务,以及一台可上网的服务器。然后,创建应用并记下App ID和App Secret。通过tnvm安装Node.js性能平台组件,包括alinode和agenthub,检查安装成功的方法是`which node`和`which agenthub`命令显示路径包含`.tnvm`。接着,启动agenthub,并在服务器上运行一个示例应用(demo.js),该应用模拟计算密集型任务。最后,通过阿里云控制台观察监控数据和执行诊断操作。注意,性能平台每分钟上传一次日志,可能需等待几分钟才能看到数据。详细部署指南可参考官方文档。
219 6
|
JavaScript
【JS】快速入门DOM
【JS】快速入门DOM
114 0
|
JavaScript 前端开发 安全
【JavaScript 】DOM操作快速入门
【JavaScript 】DOM操作快速入门
418 2
|
JavaScript 前端开发 Java
JavaScript快速入门
JavaScript快速入门
132 1
|
SQL 前端开发 JavaScript
JavaScript快速入门 有这一篇就够!
JavaScript快速入门 有这一篇就够!
141 0
|
存储 JavaScript 前端开发
如何快速入门使用Vue.js
如何快速入门使用Vue.js
117 0
|
Web App开发 存储 JavaScript
JavaScript快速入门
JavaScript快速入门
146 0
|
JavaScript 前端开发 Java
JavaScript 快速入门手册
JavaScript 快速入门手册
|
JavaScript 前端开发 Java
JavaScript 快速入门手册
JavaScript 快速入门手册
123 0
|
JavaScript 前端开发
node.js 快速入门
node.js 快速入门
172 0

热门文章

最新文章

下一篇
oss云网关配置