摘要:運(yùn)用自己的業(yè)余時(shí)間學(xué)習(xí)學(xué)習(xí)制作簡單點(diǎn)的小例子,代碼寫的有點(diǎn)隨意,我這里只相當(dāng)于提供一個(gè)引子,升華部分還是需要大家自己去成長,相比來說要比好用許多,沒事大家可以自己學(xué)習(xí)學(xué)習(xí),多學(xué)習(xí)一點(diǎn)東西總是好的項(xiàng)目地址使用數(shù)據(jù)庫管理破解版地址連接失敗解決方
運(yùn)用自己的業(yè)余時(shí)間學(xué)習(xí)學(xué)習(xí)node.js+koa+mysql,制作簡單點(diǎn)的小例子,代碼寫的有點(diǎn)隨意,我這里只相當(dāng)于提供一個(gè)引子,升華部分還是需要大家自己去成長,相比來說koa要比express好用許多,沒事大家可以自己學(xué)習(xí)學(xué)習(xí),多學(xué)習(xí)一點(diǎn)東西總是好的!1.使用數(shù)據(jù)庫管理navicat for MySQL 破解版地址
項(xiàng)目地址https://github.com/iopwanglei...
https://blog.csdn.net/chanffffdlleerr/article/details/746065482.navicat 連接失敗解決方案
https://blog.csdn.net/u013700358/article/details/803065603.聯(lián)合查詢
* user表 CREATE TABLE IF NOT EXISTS user ( uid int(11) NOT NULL, username varchar(30) NOT NULL, password char(32) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; +-----+-----------+----------+ | uid | username | password | +-----+-----------+----------+ | 1 | 張翰 | 123456 | | 2 | 李二蛋 | 1235531 | | 3 | 李文凱 | 123455 | | 4 | 安小超 | 12311q | | 5 | 韓小平 | 1asdas | | 6 | 張三 | 123555 | +-----+-----------+----------+ * order_goods表 CREATE TABLE IF NOT EXISTS order_goods ( oid int(11) NOT NULL, uid int(11) NOT NULL, name varchar(50) NOT NULL, buytime int(11) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; +-----+-----------+----------+ | oid | uid | name | buytime | +-----+-----------+----------+ | 1 | 6 | 張翰 | 123456 | | 2 | 1 | 李二蛋| 1235531 | | 3 | 2 | 李文凱| 123455 | +-----+-----------+----------+ * sql的left join 、right join 、inner join之間的區(qū)別 left join(左聯(lián)接) 返回包括左表中的所有記錄和右表中聯(lián)結(jié)字段相等的記錄 right join(右聯(lián)接) 返回包括右表中的所有記錄和左表中聯(lián)結(jié)字段相等的記錄 inner join(等值連接) 只返回兩個(gè)表中聯(lián)結(jié)字段相等的行 * 內(nèi)連接查詢: select表,字段uid,username[as]使用別名,select order_goods表,字段(和前邊一樣)inner join 表(order_goods)on 條件 = 匹配條件 select user.uid ,user.username as username,order_goods.oid,order_goods.uid,order_goods.name as shopname from user inner join order_goods on user.uid = order_goods.uid; * 外連接 左連接:select 表(user)以左表(user)為主,顯示, on 條件 select * from user left join order_goods on user.uid = order_goods.uid; * 外連接 右連接:以右表為主顯示核對(duì)成功的即on的條件成立的 SELECT * FROM `user` RIGHT JOIN order_goods on user.uid = order_goods.uid; * 子查詢 : 子查詢的關(guān)鍵字包括in、not in、=、!=、exists、not exists等。 select * from user where uid in (1,2,3); 查詢user表中uid 為1,2,3的數(shù)據(jù) select * from user where uid in (select uid from order_goods); 查詢order_goods表中uid和user表中相同的,在user表中展示 * 交叉連接: CROSS JOIN SELECT * FROM user CROSS JOIN order_goods; 自行查看展示4.安裝koa等所需
npm i koa //使用async await 異步須node版本為7.6.0以上 npm i koa-router npm i koa-bodyparser //解析中間件 npm i mysql5.目錄結(jié)構(gòu) 6.config文件下mysql.js 數(shù)據(jù)庫連接池
const mysql = require("mysql"); // 創(chuàng)建連接池 let pool = mysql.createPool({ host: "127.0.0.1", // 主機(jī) user: "root", // mysql認(rèn)證用戶名 password: "789456", // mysql用戶密碼 port: "3306", // 端口 database: "數(shù)據(jù)庫" }); let query = ( sql, values ) => { return new Promise(( resolve, reject ) => { pool.getConnection(function(err, connection) { if (err) { reject( err ) } else { connection.query(sql, values, ( err, res) => { if ( err ) { reject( err ) } else { resolve( res ) } connection.release() }) } }) }) } module.exports = query;7.路由user_router.js,這里需要調(diào)用servse文件中的user_servse.js里面的方法
const router = require("koa-router")(); const user = require("../servse/user_servse.js"); const routers = router .post("/add", user.selectData); module.exports = routers;8.路由index.js使用
const router = require("koa-router")(); const user = require("./user_router.js"); router.use(user.routes(), user.allowedMethods()) module.exports = router;9.user_servse.js方法,以及sql語句,引入mysql.js
const query = require("../config/mysql.js"); // 新增插入數(shù)據(jù)查詢條件 let insert = "INSERT INTO `goods` (`oid`, `uid`, `name`, `buytime`) VALUES (?, ?, ?, ?)"; const user = { async selectData(ctx) { let data = ctx.request.body let userAddParams = [data.oid,data.uid,data.name,data.buytime]; if(Object.keys(data).length > 0) { try { await query(insert, userAddParams); ctx.response.body = { status: 200, description: "ok", result: data } } catch(err) { ctx.response.body = { status: 404 } } } } } module.exports = user;10.app.js啟動(dòng)文件
const Koa = require("koa"); const app = new Koa(); const bodyParser = require("koa-bodyparser"); const routers = require("./router/index"); // 配置ctx.body解析中間件 app.use(bodyParser()) // 初始化路由中間件 app.use(routers.routes()).use(routers.allowedMethods()) app.listen(3000);
學(xué)習(xí)資料 喜歡的童鞋點(diǎn)個(gè)贊
1.http://mysql.phpxy.com/75314
2.http://www.manongjc.com/artic...
3.http://www.runoob.com/mysql/m...
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/95876.html
摘要:整理的一些實(shí)用的類網(wǎng)站及工具。鏈接云適配有時(shí)候我們做出的網(wǎng)站沒有用到響應(yīng)式布局,也可能我們的網(wǎng)站的像素寬度已經(jīng)規(guī)定成具體的多少像素了。同時(shí)提供多個(gè)開放,功能實(shí)用,非常強(qiáng)大。 整理的一些實(shí)用的IT類網(wǎng)站及工具。 1.聚合數(shù)據(jù) 大家在開發(fā)過程中,可能會(huì)用到各種各樣的數(shù)據(jù),想找一些接口來提供一些數(shù)據(jù)。比如天氣預(yù)報(bào)查詢,火車時(shí)刻表查詢,彩票查詢,身份證查詢等等。有了這個(gè)接口,直接調(diào)用即可。各種...
摘要:大學(xué),光學(xué)工程研究生畢業(yè),和程序猿完全不搭邊。那怎么辦,試著學(xué)一學(xué)唄,學(xué)習(xí)才是程序猿的天性。所以我在想程序猿是不是都需要新知識(shí)刺激一下,才能保持興奮的頭腦。有句話說的很對(duì)程序猿就像好奇的貓,追著毛球的線頭玩,最后一個(gè)毛球在腦袋里攪漿糊。 說說我自己的經(jīng)歷。211大學(xué),光學(xué)工程研究生畢業(yè),和程序猿完全不搭邊。 畢業(yè)后進(jìn)了成都某國字頭研究所,在行業(yè)里摸爬滾打了四年,2018年機(jī)緣巧合在家養(yǎng)...
摘要:的翻譯文檔由的維護(hù)很多人說,阮老師已經(jīng)有一本關(guān)于的書了入門,覺得看看這本書就足夠了。前端的異步解決方案之和異步編程模式在前端開發(fā)過程中,顯得越來越重要。為了讓編程更美好,我們就需要引入來降低異步編程的復(fù)雜性。 JavaScript Promise 迷你書(中文版) 超詳細(xì)介紹promise的gitbook,看完再不會(huì)promise...... 本書的目的是以目前還在制定中的ECMASc...
閱讀 2261·2021-10-09 09:41
閱讀 3409·2021-09-13 10:34
閱讀 1920·2019-08-30 12:59
閱讀 557·2019-08-29 17:27
閱讀 1063·2019-08-29 16:07
閱讀 2956·2019-08-29 13:15
閱讀 1306·2019-08-29 13:14
閱讀 1562·2019-08-26 12:18