最近使用egg.js写了一个小项目练手,主要用来封装接口以及代理接口。进入正题:

egg搭建以及各项配置 可以详见官方文档:https://eggjs.org,这里简单描述一下:

1.直接使用脚手架快速搭建项目,命令如下:

(1)npm i egg-init -g;

 (2)新建egg-demo文件夹,执行命令:egg-init egg-demo --type=simple;

(3)进入当前文件夹下,执行命令:npm i;

 (4)启动项目:npm run dev;

在浏览器中打开:localhost:7001

注意:这里默认地址是7001,如果修改,可以在package.json里面配置:egg-scripts start --port=要修改的端口号 --daemon --title=egg-server-egg-demo.

2.实现接口:

(1)在controller文件夹下,新建自己的文件,开始业务书写,这里个人建议可以新建service文件夹,在里面书写自己的复杂业务逻辑,而controller用来接收返回给页面展示;

  (2)plugin.js用来定义插件;config.default.js用做基本配置,同时自己也可以新建文件来区分开发环境、测试环境以及线上环境;

 (3)代理接口,可以参考 https://blog.csdn.net/baidu_33438652/article/details/81736832

    这里简单说一下get、post两种常用的请求方法。

    get:

      const result = await this.ctx.curl(代理的接口地址,{dataType: 'json'});

    post:

      const result = await this.ctx.curl(代理的接口地址,{
        // 必须指定 method,默认为get
        method:'POST',
        // 通过 contentType 告诉 HttpClient 以 JSON 格式发送
        contentType: 'json',
        data: 请求参数,
        // 明确告诉 HttpClient 以 JSON 格式处理返回的响应 body
        dataType: 'json'
      });

3.mysql数据库使用:

(1)mysql安装:npm i egg-mysql  --save,然后在plugin.js里面配置如下:

  exports.mysql = {
    enable: true,
    package: 'egg-mysql',
  };

  config.default.js配置如下:

    config.mysql = {
      client: {
        // host
        host: '',
        // 端口号
        port: '',
        // 用户名
        user: '',
        // 密码
        password: '',
        // 数据库名
        database: ''
      },
      // 是否加载到 app 上,默认开启
      app: true,
      // 是否加载到 agent 上,默认关闭
      agent: false,
    };

     这里建议本机安装mysql数据库(https://dev.mysql.com/downloads/file/?id=481160),以及navicat界面管理工具,这样就可以验证自己有没有操作数据库。

  (2)数据库的增删改查语法,官网都有实例,可以参考,这里对更新数据库简单说一下:

    let row = {

      password(修改的字段): newPassword(要修改的值)
    },
    options = {
      where: {
        username(查询的条件):username(查询的值),
      }
    };
    await this.app.mysql.update('数据库名', row, options);

注意:mysql服务器没有开启,或者配置有误,都会造成项目运行时报错,对应修改就可以了~~~  

3.redis使用:

  写接口时,一定会遇到数据存储的问题,这个时候我们通常采用redis存储数据,而非cookie或者storage(一般用于客户端存储)。

  (1)redis安装:npm i egg-redis --save,然后在plugin.js里面配置如下:

    exports.redis= {
      enable: true,
      package: 'egg-redis',
    };

    config.default.js配置如下:

      config.redis = {
        client: {
          port:, // Redis port
          host: '', // Redis host
          password: '',//密码
          db: 1//存储区
        }
      };

  (2)redis用法(可以下载RedisDesktopManager界面管理工具查看存储情况。):

    a.正常存储用法:await app.redis.set('key值', 存储值);

    b.一般我们也会遇到对例如token这样存储值时效的设置,代码如下:await app.redis.set('key值', 存储值,'EX',seconds);

    c.也可以通过命令行设置:

       命令启动方法:

       通过cmd命令到redis msi(个人安装包存放位置)目录下,执行命令,如:f:\software\redis msi>redis-server.exe redis.windows.conf;

       新开窗口执行 F:\software\redis msi>redis-cli.exe -h 127.0.0.1 -p 6379。

       然后输入命令:expire key seconds。    

4.项目部署与应用:

 (1)在该文件下打包,生成tgz文件:tar -zcvf ../FileName.tgz

 (2)环境部署(建议下载Xshell客户端,当然别的工具都可以,根据个人喜好~~~):     

    a.进入要部署的服务器对应文件夹下,cd 等等;

    b.//创建文件 mkdir 文件名称;

    c.打开压缩包: rz -be;

    d.解包:tar zxvf FileName.tar;

    e.移除压缩包: rm -rf  FileName.tar

  然后就可以启动啦:npm start即可。

至此,讲解完了,对于有异议或者有更好处理方法的地方上,欢迎交流与评论~~~

egg.js与mysql的结合使用,以及部署事项的更多相关文章

  1. vue+egg.js+mysql一个前后端分离留言板项目

    一.前序 我相信每个人前端搬运工和我想法都是一样的,都有一个做全栈的梦,无奈面对众多的后台语言,却不从下手,今天由我来带你们潜入全栈的门槛,注意是门槛.能不能学的会后面的内容全靠坚持了. 我今天主要做 ...

  2. Node.js框架之Egg.js

    Node.js是我前段时间接触的一个JavaScript的服务端语言,感觉还是挺有意思的. 也许有人说,你学这么多,学的过来吗?或者说学的太多,专而不精,有必要这样吗? 其实,我个人认为,自从我进入I ...

  3. 60分钟课程: 用egg.js实现增删改查,文件上传和restfulApi, webpack react es6 (一)

    今天开始我将写nodejs框架egg.js, react 实现的增删改查,文件上传等常用的b/s场景,这个将分3部分来写. 会让你在60分钟内快速 入口并应用~  你应该用es6, node,或是ph ...

  4. 基于 Egg.js 框架的 Node.js 服务构建之用户管理设计

    前言 近来公司需要构建一套 EMM(Enterprise Mobility Management)的管理平台,就这种面向企业的应用管理本身需要考虑的需求是十分复杂的,技术层面管理端和服务端构建是架构核 ...

  5. Serverless + Egg.js 后台管理系统实战

    本文将介绍如何基于 Egg.js 和 Serverless 实现一个后台管理系统 作为一名前端开发者,在选择 Nodejs 后端服务框架时,第一时间会想到 Egg.js,不得不说 Egg.js 是一个 ...

  6. egg.js部署到服务器

    关于egg.js项目部署服务器的问题 我使用的是腾讯云centos , 部署前需要确保服务器上安装了mysql, node . mysql下载:https://dev.mysql.com/downlo ...

  7. egg.js in action

    egg.js in action fullstack https://github.com/eggjs/egg/ cli config router service midlewares HTTP C ...

  8. Egg.js 是什么?

    Egg.js 是什么? 阿里巴巴出 Egg.js 为企业级框架和应用而生,我们希望由 Egg.js 孕育出更多上层框架,帮助开发团队和开发人员降低开发和维护成本. 注:Egg.js 缩写为 Egg 设 ...

  9. 使用egg.js开发后端API接口系统

    什么是Egg.js Egg.js 为企业级框架和应用而生,我们希望由 Egg.js 孕育出更多上层框架,帮助开发团队和开发人员降低开发和维护成本.详细的了解可以参考Egg.js的官网:https:// ...

随机推荐

  1. 新更新kb4493472导致无法正常开机

    昨天陆续接到电话,说是系统更新后电脑不能正常使用,症状基本是开机到欢迎界面就出现各种各样的状况,比如鼠标能动,其他无反应;欢迎界面结束后黑屏,只有鼠标能动:开机后正常,但电脑使用很卡等等状况.因为昨天 ...

  2. 知乎专栏开放性api

    概述 这是我在工作中扒的知乎专栏的开放性api,记录下来供以后开发时参考,相信对其他人也有用. 参考资料: zhihu库 zhihu-oauth库 开放性api 其中hemingke是专栏名字,可以换 ...

  3. JDK源码分析(11)之 BlockingQueue 相关

    本文将主要结合源码对 JDK 中的阻塞队列进行分析,并比较其各自的特点: 一.BlockingQueue 概述 说到阻塞队列想到的第一个应用场景可能就是生产者消费者模式了,如图所示: 根据上图所示,明 ...

  4. 玩转Spring Cloud之熔断降级(Hystrix)与监控

    本文内容导航目录: 前言:解释熔断降级一.搭建服务消费者项目,并集成 Hystrix环境 1.1.在POM XML中添加Hystrix依赖(spring-cloud-starter-netflix-h ...

  5. C#/VB.NET设置Excel表格背景色

    在查看很多有复杂的数据的表格时,为了能够快速地找到所需要的数据组时,往往需要对该数据组进行分类,一个简单快速的方法就是对数据组所在的单元格填充背景颜色,这样就使得我们在阅读文件时能够直观的看到数据分类 ...

  6. Java 在PDF中添加水印——文本/图片水印

    水印是一种十分常用的防伪手段,常用于各种文档.资料等.常见的水印,包括文字类型的水印.图片或logo类型的水印.以下Java示例,将分别使用insertTextWatermark(PdfPageBas ...

  7. Java_基础篇(杨辉三角)

    对于刚刚学Java的同学来说,杨辉三角是一个很好的例子. 杨辉三角让初学者更好的理解数组的定义和更好地去运用数组,特别是二维数组. 除此之外,还让初学者更好的掌握嵌套语句的使用. 以下是我的杨辉三角J ...

  8. react异步加载组件

    1. 创建 asyncComponent 异步加载工具 import React from 'react' function asyncComponent(loadComponent){ class ...

  9. SharePoint代码建表(实战)

    分享人: 广州华软 无名 一. 前言 虽然SharePoint提供可视化界面建表,但是,不利于开发自动化部署.通常,如果通过手动建表,我们先在测试环境建表,然后存为模板,再上传到实际环境,最后根据模板 ...

  10. API测试工具SoapUI & Postman对比分析

    本文由葡萄城技术团队于博客园原创并首发 转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 最近公司要引入API测试工具,经过调查和了解,最终决定在SoapUI ...