egg.js连接mysql-基础篇1

去数据库创建表

/*
SQLyog Ultimate v12.09 (64 bit)
MySQL - 5.5.58-log : Database - news
*********************************************************************
*/


/*!40101 SET NAMES utf8 */;

/*!40101 SET SQL_MODE=''*/;

/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
CREATE DATABASE /*!32312 IF NOT EXISTS*/`news` /*!40100 DEFAULT CHARACTER SET utf8 */;

USE `news`;

/*Table structure for table `article` */

CREATE TABLE `article` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `img` text,
  `title` varchar(80) DEFAULT NULL,
  `summary` varchar(300) DEFAULT NULL,
  `content` text,
  `createTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;

/*Data for the table `article` */

insert  into `article`(`id`,`img`,`title`,`summary`,`content`,`createTime`) values (1,'http://img3.chinadaily.com.cn/images/201912/07/5deb319aa31099ab43d74c79.gif','收官之年确保圆满收官——中央政治局会议传递2020年经济工作五大信号','即将过去的2019年,面对国内外风险挑战明显上升的复杂局面,我国保持经济社会持续健康发展,“十三五”规划主要指标进度符合预期,全面建成小康社会取得了新的重大进展。','即将过去的2019年,面对国内外风险挑战明显上升的复杂局面,我国保持经济社会持续健康发展,“十三五”规划主要指标进度符合预期,全面建成小康社会取得了新的重大进展。\r\n\r\n2020年是全面建成小康社会和“十三五”规划收官之年。如何做好明年经济工作,确保实现第一个百年奋斗目标?6日召开的中央政治局会议作出安排部署,传递重要信号。\r\n\r\n确保全面建成小康社会和“十三五”规划圆满收官\r\n\r\n今年以来,在国内外复杂严峻形势下,中国经济依然保持持续健康发展态势。\r\n\r\n中国国际经济交流中心首席研究员张燕生注意到,会议指出,“十三五”规划主要指标进度符合预期,全面建成小康社会取得了新的重大进展。\r\n\r\n“这些令人鼓舞的成绩来之不易,也为做好明年经济工作奠定了坚实基础。”他说。','2019-12-07 21:21:27'),(2,'http://img3.chinadaily.com.cn/images/201912/06/5de9893aa31099ab43d731ed.jpeg','新西兰发行2020中国鼠年生肖邮票','这是新西兰邮政发行的2020中国鼠年生肖邮票。','新西兰邮政4日发行2020中国鼠年生肖邮票一套4枚和包含这4枚邮票的小全张,庆祝即将到来的中国农历鼠年。 ','2019-12-07 21:22:11'),(3,'http://img3.chinadaily.com.cn/images/201912/07/5deb8b8aa31099ab43d757bc.jpeg','快舟一号“一日两箭”创中国航天新纪录','快舟一号甲运载火箭周六下午在太原卫星发射中心执行当天的第二次发射任务。摄影:郑淘淘','中国日报12月7日北京电(记者 赵磊)记者从中国航天科工集团有限公司获悉,由航天科工第四研究院研制的快舟一号甲固体运载火箭今天在太原卫星发射中心执行了两次发射任务。这是我国首次同一天在同一发射场两次成功发射同一型号运载火箭。\r\n\r\n据悉,当日10时55分,一枚快舟一号甲运载火箭托举着“吉林一号”高分02B卫星顺利升空。下午4时52分,又一枚快舟一号甲运载火箭腾空而起,将6颗卫星送入预定轨道。\r\n\r\n这两次发射分别是2019年内快舟一号甲火箭的第4次和第5次商业发射。\r\n\r\n据介绍,此次任务也标志着太原卫星发射中心在快速发射和应急发射能力上取得突破。\r\n据了解,快舟系列固体运载火箭在年底前还将执行发射任务。\r\n\r\n','2019-12-07 21:26:02');

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

初始化egg项目

npm init egg --type=simple

安装依赖

npm install

安装egg-mysql

npm i --save egg-mysql

运行

npm run dev

修改plugin.js

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

为config.default.js添加代码


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

完整 config.default.js

/* eslint valid-jsdoc: "off" */

'use strict';

/**
 * @param {Egg.EggAppInfo} appInfo app info
 */
module.exports = appInfo => {
  /**
   * built-in config
   * @type {Egg.EggAppConfig}
   **/
  const config = exports = {};

  // use for cookie sign key, should change to your own and keep security
  config.keys = appInfo.name + '_1575724470332_7037';

  config.security={
    csrf:{
      enable:false,
    }
  };

  // add your middleware config here
  config.middleware = [];

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

  // add your user config here
  const userConfig = {
    // myAppName: 'egg',
  };

  return {
    ...config,
    ...userConfig,
  };
};

修改home.js


'use strict';

const Controller = require('egg').Controller;

class HomeController extends Controller {
  async index() {
    const { ctx,app } = this;
    const res=await app.mysql.select('article');
    console.log(res);
    ctx.body = res;
  }
}

module.exports = HomeController;

你可能感兴趣的:(egg.js连接mysql-基础篇1)