egg.js是node么

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

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 eggnpm inpm 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.jsclass 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/2class 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 = "

Hello

";  }}

登录后复制

使用 mysql 数据库

安装 mysql 插件

npm i egg-mysql

登录后复制

配置

// config/plugin.jsexports.mysql = {  enable: true,  package: "egg-mysql",};// config/config.${env}.jsexports.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.jsconst 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.jsclass 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/

登录后复制

推荐学习:《node.js视频教程》

以上就是egg.js是node么的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2631764.html

(0)
上一篇 2025年3月7日 04:03:09
下一篇 2025年3月7日 04:03:15

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • npm node gyp失败怎么办

    npm node gyp失败是因为“node-gyp.js”跟“Node.js”版本不匹配,其解决办法:1、通过“npm cache clean -f”清除node缓存;2、通过“npm install -g n”安装n模块;3、通过“n …

    2025年3月7日
    000
  • vue node sass报错怎么解决

    vue node sass报错的解决办法:1、查看项目中引用的“node-sass”版本;2、查询“node-sass”对应的“node.js”版本;3、清空下npm,然后重新执行“npm install”安装node即可。 本教程操作环境…

    2025年3月7日
    200
  • webpack打包node时fs报错怎么办

    webpack打包node时fs报错的解决办法:1、在Webpack项目安装bable打包工具;2、查看打包失败的信息;3、直接卸载原始Nodejs,重新下载稳定的Node版本;4、使用prefetch提前缓存将要使用的js模块。 本教程操…

    2025年3月7日 编程技术
    200
  • 什么是node中间件

    node中间件主要是指封装http请求细节处理的方法,其本质上就是在进入具体的业务处理之前,先让特定过滤器处理;对于Web应用而言,引入Node中间件可以简化和封装一些基础逻辑处理细节。 本教程操作环境:Windows10系统、node v…

    2025年3月7日 编程技术
    200
  • node http get 乱码怎么办

    node http get乱码的解决办法:1、打开相应的react文件;2、通过“var req = http.get(url,function(res){res.setEncoding(‘utf-8’);var h…

    2025年3月7日
    200
  • node server.js 报错怎么办

    node server.js报错是因为路径不对,其解决办法:1、进入cmd窗口;2、切换到项目路径下的“server.js”;3、重新执行“node server.js”命令即可解决报错问题。 本教程操作环境:Windows10系统、nod…

    2025年3月7日
    200
  • 如何解决安装node错误2503问题

    安装node错误2503的解决办法:1、打开cmd窗口,执行“npm uninstall node”命令;2、进入powershell,将node的安装包mis文件放在没有空格的任意目录下;3、在powershell中cd进入需要安装nod…

    2025年3月7日 编程技术
    200
  • 一文详解Node中的Express和路由模块

    本篇文章带大家一起学习node,深入介绍一下express和路由模块的使用方法,希望对大家有所帮助! Express Express是基于Node.js平台,快速、开放、极简的Web开发框架。Express的作用和Node.js内置的htt…

    2025年3月7日 编程技术
    200
  • Node http模块学习:聊聊基本用法

    本篇文章给大家了解一下node.js http模块,介绍一下createserver和listen方法,希望对大家有所帮助! http 模块 使用 Node.js 中创建 Web 服务,主要依赖内置的 http 模块。经典的 express…

    2025年3月7日
    200
  • 一文聊聊Node中的net模块

    node.js中提供了net模块,该模块提供了对tcp、socket的封装与支持。本篇文章就来带大家带大家了解一下node中的net模块,希望对大家有所帮助! 我之前看教程的时候,很多都是从 IO、buffer、path、event、fs、…

    2025年3月7日 编程技术
    200

发表回复

登录后才能评论