您好,登錄后才能下訂單哦!
egg.js中Egg-mysql如何使用,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
需要使用egg提供的一個egg-mysql插件來進行數據庫交互,所以
首先安裝egg-mysql npm包,執行命令:
$ npm i --save egg-mysql
然后在項目插件配置文件中開啟插件
// config/plugin.jsexports.mysql = { enable: true,// 開啟 package: 'egg-mysql', // 對應哪個包};
接下來就需要配置數據庫賬號等信息了,egg提供一種多環境配置,就是咱即可以配置自己本地的數據庫信息,也可以配置測試環境、線上環境數據庫信息,只需要再config下創建config.${env}.js文件即可,比如config.location.js為我本地配置,config.prod.js為線上環境,然后在config/env文件內指定運行環境即可。
當然也可以默認都用一個配置。我用config/config.default.js來作為默認配置文件。
// mysqlconfig.mysql = {client: {// host host: 'localhost',// 端口號 port: '3306',// 用戶名 user: 'root',// 密碼 password: 'root',// 數據庫名 database: 'test',},// 是否加載到 app 上,默認開啟 app: true,// 是否加載到 agent 上,默認關閉 agent: false,}
如何在項目中增刪改查呢?你可以直接在controller里邊直接這樣用,不過建議自己寫一個service來過度下業務
get 查詢單條信息
let user = await this.app.mysql.get('users', { id: 1 });
2. select 查詢多條數據
let users= await this.app.mysql.select('users');
3. select 有條件的查詢,蛋疼的是,他的條件只支持=和in,真雞兒,想自定義還需要用query
let users = await this.app.mysql.select('users', {where: {name: ['test', 'test1'], // 相當于 in },order: [['created_at', 'desc'], ['state', 'desc']]});
4. query 直接執行sql語句,為了防止sql注入,采用這種每個?匹配一個元素的方式
let users = await this.app.mysql.query('select * from users where id > ? and state <> ? and phone is not null', [100, 0]);
5. insert 插入數據
let res = await this.app.mysql.insert('users', {name: 'egg',phone: 'xxxxxx'});let id = res.insertId; // 得到新插入的數據主鍵
6. update 更新數據
// 更新id=1的用戶信息let res = await this.app.mysql.update('users', {name: 'egg',phone: 'xxxxxx'}, {id: 1,});
7. delete 刪除數據
let res = await this.app.mysql.delete('users', {id: 1,});
看完上述內容,你們掌握egg.js中Egg-mysql如何使用的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。