返回顶部
首页 > 资讯 > 前端开发 > 其他 >egg.js是node么
  • 609
分享到

egg.js是node么

egg.jsnode 2023-05-14 21:05:22 609人浏览 八月长安
摘要

本教程操作环境:windows10系统、egg.js v2.0.0版、Dell G3电脑。egg.js是node么?是。了解 egg.jsEgg 是一个继承于 Koa 的 node.js 框架。不同于 exporess、koa 等基础框架,

egg.js是node么

教程操作环境:windows10系统、egg.js v2.0.0版、Dell G3电脑。

egg.js是node么?

是。

了解 egg.js

Egg 是一个继承于 Koa 的 node.js 框架。不同于 exporess、koa 等基础框架,egg.js 在应用级的提炼封装,使其更贴近业务场景,更快上手。

Egg 按照约定进行开发,奉行『约定优于配置』,团队协作成本低

安装

npm init egg
npm i
npm run dev

一个基础的 api 大致由路由、获取请求参数、逻辑处理、返回响应数据几部分组成

路由

app/router.js 用于配置 URL 路由规则

router.get("/", controller.home.index);
// 当访问GET '/' ,app/controller/home.js 下的 index 方法会执行
router.post("/create", controller.user.create);
// 当访问POST '/create' ,app/controller/user.js 下的 create 方法会执行

获取请求参数

this.ctx.query获取 URL 中 ? 后面的部分参数

// GET /posts?cateGory=egg&language=node
// app/controller/post.js
class PostController extends Controller {
  async listPosts() {
    const query = this.ctx.query;
    // {
    //   category: 'egg',
    //   language: 'node',
    // }
  }
}

this.ctx.params获取路由中的动态参数

// app.get('/projects/:projectId/app/:appId', controller.app.listApp);
// GET /projects/1/app/2
class AppController extends Controller {
  async listApp() {
    const params = this.ctx.params;
    // {
    //   projectId: '1',
    //   appId: '2'
    // }
  }
}

this.ctx.request.body获取 body 参数

// POST /api/posts Http/1.1
// Host: localhost:3000
// Content-Type: application/JSON; charset=UTF-8
//
// {"title": "controller", "content": "what is controller"}
class PostController extends Controller {
  async listPosts() {
    const body = this.ctx.request.body;
    // {
    //   title: 'controller',
    //   content: 'what is controller'
    // }
  }
}

返回响应数据

this.ctx.body返回响应数据

class ViewController extends Controller {
  async show() {
    // 返回Content-Type为application/json的body
    this.ctx.body = {
      name: "egg",
      category: "framework",
      language: "Node.js",
    };
  }
  async page() {
    // 返回Content-Type为text/html的body
    this.ctx.body = "<html><h1>Hello</h1></html>";
  }
}

使用 mysql 数据库

安装 Mysql 插件

npm i egg-mysql

配置

// config/plugin.js
exports.mysql = {
  enable: true,
  package: "egg-mysql",
};
// config/config.${env}.js
exports.mysql = {
  // 单数据库信息配置
  client: {
    // host
    host: "localhost",
    // 端口号
    port: "3306",
    // 用户名
    user: "root",
    // 密码
    passWord: "root",
    // 数据库名
    database: "database",
  },
};

使用

// 查找id 为 ${uid}的用户
await this.app.mysql.get("users", { id: uid });

处理业务逻辑

业务逻辑建议放在app/service中,当然也包括数据库的操作

// app/service/user.js
const Service = require("egg").Service;
class UserService extends Service {
  async find(uid) {
    // 假如 我们拿到用户 id 从数据库获取用户详细信息
    const user = await this.app.mysql.get("users", { id: uid });
    return user;
  }
}
module.exports = UserService;

之后可以通过 Controller 获取 Service 层拿到的数据。

// app/controller/user.js
class UserController extends Controller {
  async info() {
    const ctx = this.ctx;
    const userId = ctx.params.id;
    // 调用service层的user下的find方法
    const user = await ctx.service.user.find(userId);
    ctx.body = user;
  }
}

基本 CURD 语句可以使用 create、get、select、update、delete 方法

直接执行 sql 语句可使用 query 方法

事务的控制

egg.js 官网:https://www.eggjs.org/zh-CN/

以上就是egg.js是node么的详细内容,更多请关注编程网其它相关文章!

--结束END--

本文标题: egg.js是node么

本文链接: https://lsjlt.com/news/206368.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • egg.js是node么
    本教程操作环境:Windows10系统、egg.js v2.0.0版、Dell G3电脑。egg.js是node么?是。了解 egg.jsEgg 是一个继承于 Koa 的 node.js 框架。不同于 exporess、koa 等基础框架,...
    99+
    2023-05-14
    egg.js node
  • egg.js是不是node
    这篇文章主要讲解了“egg.js是不是node”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“egg.js是不是node”吧!egg.js是node框架,是一个继承于Koa的node.js框架...
    99+
    2023-07-04
  • node是什么意思
    本篇内容介绍了“node是什么意思”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2024-04-02
  • node是免费的么
    本教程操作环境:Windows10系统、Node.js 17版、DELL G3电脑node是免费的么?是免费的。Node.js 简介Node.js 是一个开源服务器环境Node.js 是免费的Node.js 在各种平台 (Windows, ...
    99+
    2023-05-14
    Node.js
  • npm是不是node
    小编给大家分享一下npm是不是node,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! npm不是no...
    99+
    2024-04-02
  • node nvm是什么意思
    这篇文章主要介绍了node nvm是什么意思,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 nvm全称“node...
    99+
    2024-04-02
  • node express是什么意思
    本篇内容主要讲解“node express是什么意思”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“node express是什么意思”吧! ...
    99+
    2024-04-02
  • node-red中dashboard是什么
    这篇文章主要介绍node-red中dashboard是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Node-red支持自定义节点,当然也就支持自定义图形化的节点。也有优秀的开发者把自己建立的图形化节点无偿分享。...
    99+
    2023-06-29
  • Node中的Stream是什么
    本篇内容主要讲解“Node中的Stream是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Node中的Stream是什么”吧!stream 是一个抽象的数据接口,它继承了 EventEmit...
    99+
    2023-07-05
  • 什么是node中间件
    本教程操作环境:Windows10系统、node v12.21.0版、Dell G3电脑。什么是node中间件?深入浅出nodejs中间件原理前言中间件是介于应用系统和系统软件之间的一类软件,它使用系统软件所提供的基础服务(功能),衔接网络...
    99+
    2023-05-14
    中间件 node
  • node模块化是什么
    这篇“node模块化是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“node模块化是什么”文章吧。什么是模块化模块化是指...
    99+
    2023-07-05
  • node还是golang
    在现代应用程序开发的世界中,有两种编程语言备受关注,它们分别是Node.js和Golang。Node.js是基于JavaScript的并采用异步事件驱动编程模型的开发平台,而Golang则是一种静态类型语言,集成了高效的并发编程模型和高性能...
    99+
    2023-05-19
  • node是后端吗
    这篇文章主要介绍“node是后端吗”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“node是后端吗”文章能帮助大家解决问题。 node是后...
    99+
    2024-04-02
  • gulp是不是基于node
    这篇文章给大家分享的是有关gulp是不是基于node的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 gulp是基于node的。Gulp是基于node平...
    99+
    2024-04-02
  • node是不是免费的
    本文小编为大家详细介绍“node是不是免费的”,内容详细,步骤清晰,细节处理妥当,希望这篇“node是不是免费的”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。node是免费的;node发布于2009年5月,由Ry...
    99+
    2023-07-05
  • node中mongooes的概念是什么
    这篇文章主要介绍“node中mongooes的概念是什么”,在日常操作中,相信很多人在node中mongooes的概念是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”no...
    99+
    2024-04-02
  • node中multer的概念是什么
    这篇文章主要介绍“node中multer的概念是什么”,在日常操作中,相信很多人在node中multer的概念是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”node中m...
    99+
    2024-04-02
  • node中token的概念是什么
    这篇文章主要讲解了“node中token的概念是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“node中token的概念是什么”吧! ...
    99+
    2024-04-02
  • node转发的概念是什么
    本篇内容主要讲解“node转发的概念是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“node转发的概念是什么”吧! node转发...
    99+
    2024-04-02
  • node的异步机制是什么
    这篇“node的异步机制是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“node的异步...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作