使用egg.js和egg-sequelize连接mysql
1.通过 egg-init 初始化一个项目:
egg-init --type=simple --dir=sequelize-project
cd sequelize-project
npm i
2.安装并配置 egg-sequelize 插件(它会辅助我们将定义好的 Model 对象加载到 app 和 ctx 上)和 mysql2模块:
3.
在
config/plugin.js
中引入 egg-sequelize 插件
exports.sequelize = {
enable: true,
package: 'egg-sequelize',
};
在 配置数据库信息(在
config/config.default.js
中添加 sequelize 配置)
/* eslint valid-jsdoc: "off" */ 'use strict'; /**
* @param {Egg.EggAppInfo} appInfo app info
*/
module.exports = appInfo => {
/**
* built-in config
* @type {Egg.EggAppConfig}
**/
const config = {}; // use for cookie sign key, should change to your own and keep security
config.keys = appInfo.name + '_1553528793275_7075'; // add your middleware config here
config.middleware = [];
config.sequelize = {
dialect: 'mysql',
host: '127.0.0.1',
port: 3306,
database: 'egg_test', //数据库民
username: 'root', //数据库的用户名
password: 'root' //
}
// add your user config here
const userConfig = {
// myAppName: 'egg',
}; return {
...config,
...userConfig,
};
};
4.使用model 连接数据表
Model/user.js
'use strict'; module.exports = app => {
const { STRING, INTEGER } = app.Sequelize; const User = app.model.define('user',
{
userid: { type: INTEGER, primaryKey: true, autoIncrement: true },
username: STRING(50),
sex: STRING(4),
userpass:STRING(32)
},
{
freezeTableName: true, // Model 对应的表名将与model名相同
timestamps: false,
}
); return User;
};
5.调用model操作数据库
controller/user.js
'use strict'; const Controller = require('egg').Controller; class HomeController extends Controller {
async index() {
const { ctx } = this;
ctx.body = 'hi, egg';
}
} module.exports = HomeController;
6.创建数据库
ALTER TABLE `user`
MODIFY COLUMN `userid` int(11) NOT NULL DEFAULT '' FIRST ,
MODIFY COLUMN `sex` char(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' AFTER `username`;
7.添加路由
'use strict'; /**
* @param {Egg.Application} app - egg application
*/
module.exports = app => {
const { router, controller } = app;
router.get('/', controller.home.index);
router.get('/user', controller.user.index);
};
使用egg.js和egg-sequelize连接mysql的更多相关文章
- [Node.js]expressjs简单测试连接mysql
下载好node.js和通过npm安装好express.js后,先写package.json { "name": "application-name", &quo ...
- Egg.js中使用sequelize事务
对数据库的操作很多时候需要同时进行几个操作,比如需要同时改动几张表的数据,或者对同一张表中不同行(row)或列(column)做不同操作,比较典型的例子就是用户转账问题(A账户向B账号汇钱): 1 从 ...
- egg.js与mysql的结合使用,以及部署事项
最近使用egg.js写了一个小项目练手,主要用来封装接口以及代理接口.进入正题: egg搭建以及各项配置 可以详见官方文档:https://eggjs.org,这里简单描述一下: 1.直接使用脚手架快 ...
- egg 连接 mysql 的 docker 容器,报错:Client does not support authentication protocol requested by server; consider upgrading MySQL client
egg 连接 mysql 的 docker 容器,报错:Client does not support authentication protocol requested by server; con ...
- vue+egg.js+mysql一个前后端分离留言板项目
一.前序 我相信每个人前端搬运工和我想法都是一样的,都有一个做全栈的梦,无奈面对众多的后台语言,却不从下手,今天由我来带你们潜入全栈的门槛,注意是门槛.能不能学的会后面的内容全靠坚持了. 我今天主要做 ...
- 基于 Egg.js 框架的 Node.js 服务构建之用户管理设计
前言 近来公司需要构建一套 EMM(Enterprise Mobility Management)的管理平台,就这种面向企业的应用管理本身需要考虑的需求是十分复杂的,技术层面管理端和服务端构建是架构核 ...
- Serverless + Egg.js 后台管理系统实战
本文将介绍如何基于 Egg.js 和 Serverless 实现一个后台管理系统 作为一名前端开发者,在选择 Nodejs 后端服务框架时,第一时间会想到 Egg.js,不得不说 Egg.js 是一个 ...
- 使用egg.js开发后端API接口系统
什么是Egg.js Egg.js 为企业级框架和应用而生,我们希望由 Egg.js 孕育出更多上层框架,帮助开发团队和开发人员降低开发和维护成本.详细的了解可以参考Egg.js的官网:https:// ...
- Node.js - 阿里Egg的多进程模型和进程间通讯
前言 最近用Egg作为底层框架开发项目,好奇其多进程模型的管理实现,于是学习了解了一些东西,顺便记录下来.文章如有错误, 请轻喷 为什么需要多进程 伴随科技的发展, 现在的服务器基本上都是多核cpu的 ...
随机推荐
- [BZOJ5407]girls
也是CF985G... 容斥+三元环计数 CF数据太弱啦 vis没赋初值-1竟然过了QAQ 所以又调了我半个小时才搞掉QAQ 数数真难QAQ 记得要写#include<vector>!!! ...
- altium designer设置不会产生.pcbpreview、.schpreview等的垃圾文件
使用altium的是时候发现只要打开pcb或者原理图的时候就会生成一些垃圾文件,删除后再次打开还是会自动生成这些东西,对于我这样有些许洁癖的人没很是难以忍受的.那么怎么把它删除呢.其实通过字面的意思就 ...
- Spring---Spring Aware
1.概述 1.1.Spring中的 所有Bean 对Spring容器的存在 是没有意识的(即你可以将容器换成别的容器,这样使用容器与Bean之间的耦合度很低): 但在实际项目中,不可避免的要用到 ...
- Java自定义注解学习
1.定义一个枚举类,后面自定义注解时使用 package cn.tx.annotation.enums; /** * 定义枚举类型 * @author Administrator * */ publi ...
- Mybatis的运行原理
我们写的sql语句就在statementBuilder中. 整个mapper的信息都保存到configuration 1:根据配置文件创建SQLSessionFactory 先创建SqlSession ...
- php strncmp()函数 语法
php strncmp()函数 语法 作用:比较字符串前n个字符,区分大小写 语法:strncmp(string1,string2,length)直线电机品牌 参数: 参数 描述 string1 必须 ...
- project 计划添加编号或 任务分解时为任务添加编号
[工具]-[选项]-[视图]-选择[显示大纲数字]-[确定]
- BUUCTF | CODE REVIEW 1 (反序列化,md5绕过)
<?php /** * Created by PhpStorm. * User: jinzhao * Date: 2019/10/6 * Time: 8:04 PM */ highlight_f ...
- php使用curl实现get和post请求的方法,数据传输urldecode和json
PHP支持CURL库,利用URL语法规定来传输文件和数据的工具,支持很多协议,包括HTTP.FTP.TELNET等. 优点:是可以通过灵活的选项设置不同的HTTP协议参数,并且支持HTTPS.CURL ...
- 踩坑记之字体图标在webpack中
首先介绍一个还不错的字体图标库: font-awesome 是在发现bootstrap在npm下载后没有font包以后重新找的字体库,内容还挺丰富的,好像还有动态图,感兴趣的可以看一下 我的环境是we ...