前言:
egg中配合使用mysql来实现数据的获取和写入,并通过egg定义的方式发送到接口里面。
目录:
目录:
官方入口(egg+mysql):点我
一、项目中安装mysql
1、安装:
2、配置插件:打开config/plugin.js
3、配置插件:打开config/config.default
4、使用方式:具体使用看下面
二、页面上定义get请求接收mysql的数据
1、路由中加入, router.js或者router.local.js
2、user.js中定义 getUserList 方法,
select * from user sql查询语句 ,获取user表的所有数据
3、页面上打开 http://localhost:7001/getUserList
三、页面上定义post请求新增mysql的数据
1、路由中加入, router.js或者router.local.js
2、user.js中定义 postUserList方法,
sql语句:
let insertResult = await this.app.mysql.insert( 'user', { 你的表里对应的字段 } );
3、如果报错missing csrf token ,点我
4、postman中请求:http://localhost:7001/postUserList
四:jsonp请求(摘取)
更多资料:操作数据库(摘取)
官方入口(egg+mysql):点我
一、项目中安装mysql
1、安装:
cnpm i --save egg-mysql
2、配置插件:打开config/plugin.js
// mysql配置
exports.mysql = {
enable: true,
package: 'egg-mysql',
};
1、安装:
cnpm i --save egg-mysql
2、配置插件:打开config/plugin.js
// mysql配置
exports.mysql = {
enable: true,
package: 'egg-mysql',
};
// mysql配置
exports.mysql = {
enable: true,
package: 'egg-mysql',
};
3、配置插件:打开config/config.default
// 配置MySQL数据库的连接
exports.mysql = {
client: {
// ip地址,本机就localhost
host: 'localhost',
// 端口-默认都是这个
port: '3306',
// 账号
user: 'root',
// 密码
password: '123456',
// 表名称
database: 'xing'
},
// load into app, default is open
app: true,
// load into agent, default is close
agent: false,
};
4、使用方式:具体使用看下面
await app.mysql.query(sql, values); // 单实例可以直接通过 app.mysql 访问 |
二、页面上定义get请求接收mysql的数据
1、路由中加入, router.js或者router.local.js
app.get('/getUserList', controller.new.user.getUserList);
app.get('/getUserList', controller.new.user.getUserList);
2、user.js中定义 getUserList 方法,
select * from user sql查询语句 ,获取user表的所有数据
const Controller = require('egg').Controller;
class NewsController extends Controller {
async getUserList() {
//查询库里的user表
let userList= await this.app.mysql.query(
'select * from user'
);
console.log(this.ctx.query);//获取路径后面的参数
this.ctx.body = {
code:200,
masg:'success',
data:userList
};
}
}
module.exports = NewsController;
3、页面上打开 http://localhost:7001/getUserList
const Controller = require('egg').Controller;
class NewsController extends Controller {
async getUserList() {
//查询库里的user表
let userList= await this.app.mysql.query(
'select * from user'
);
console.log(this.ctx.query);//获取路径后面的参数
this.ctx.body = {
code:200,
masg:'success',
data:userList
};
}
}
module.exports = NewsController;
3、页面上打开 http://localhost:7001/getUserList
三、页面上定义post请求新增mysql的数据
1、路由中加入, router.js或者router.local.js
app.post('/postUserList', controller.new.user.postUserList);
2、user.js中定义 postUserList方法,
sql语句:
let insertResult = await this.app.mysql.insert(
'user', { 你的表里对应的字段 }
);
const Controller = require('egg').Controller;
class NewsController extends Controller {
async postUserList() {
//新增数据-user表
let data = {
name:'张三',
id:parseInt(Math.random()*100000),
age:'34',
address:'地址',
email:'34',
phone:'13519102731'
}
let insertResult = await this.app.mysql.insert(
'user', data
);
this.ctx.body = {
code:200,
masg:'success',
data:insertResult
};
}
}
module.exports = NewsController;
3、如果报错missing csrf token ,点我
4、postman中请求:http://localhost:7001/postUserList
let insertResult = await this.app.mysql.insert(
'user', { 你的表里对应的字段 }
);
const Controller = require('egg').Controller;
class NewsController extends Controller {
async postUserList() {
//新增数据-user表
let data = {
name:'张三',
id:parseInt(Math.random()*100000),
age:'34',
address:'地址',
email:'34',
phone:'13519102731'
}
let insertResult = await this.app.mysql.insert(
'user', data
);
this.ctx.body = {
code:200,
masg:'success',
data:insertResult
};
}
}
module.exports = NewsController;
3、如果报错missing csrf token ,点我
4、postman中请求:http://localhost:7001/postUserList
4、postman中请求:http://localhost:7001/postUserList
四:jsonp请求(摘取)
//app/router.js
module.exports = app => {
const { router, controller } = app;
router.get('/',controller.home.index);
router.get('/list',controller.news.list);
router.post('/form',controller.form.post);
router.get('/demo/count.json',app.jsonp(),controller.demo.count);
}
// app/demo/count.json
{
"errcode":"0",
"msg":"success",
"data":[
{
"id":1,
"title":"hello"
},
{
"id":2,
"title":"world"
}
]
}
// app/controller/demo.js
const Controller = require('egg').Controller;
class DemoJsonp extends Controller{
async count(){
this.ctx.body = {
data:[
{
"id":1,
"title":"hello"
},
{
"id":2,
"title":"world"
}
]
};
}
}
module.exports = DemoJsonp;
其实我们这里并没有跨域,只是类比一下,跟get其实一样。



