成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

簡單的學習一下node吧——還在學習中~~~

AbnerMing / 1212人閱讀

摘要:運用自己的業(yè)余時間學習學習制作簡單點的小例子,代碼寫的有點隨意,我這里只相當于提供一個引子,升華部分還是需要大家自己去成長,相比來說要比好用許多,沒事大家可以自己學習學習,多學習一點東西總是好的項目地址使用數(shù)據(jù)庫管理破解版地址連接失敗解決方

運用自己的業(yè)余時間學習學習node.js+koa+mysql,制作簡單點的小例子,代碼寫的有點隨意,我這里只相當于提供一個引子,升華部分還是需要大家自己去成長,相比來說koa要比express好用許多,沒事大家可以自己學習學習,多學習一點東西總是好的!
項目地址https://github.com/iopwanglei...
1.使用數(shù)據(jù)庫管理navicat for MySQL 破解版地址
    https://blog.csdn.net/chanffffdlleerr/article/details/74606548
2.navicat 連接失敗解決方案
    https://blog.csdn.net/u013700358/article/details/80306560
3.聯(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)結字段相等的記錄 
    right join(右聯(lián)接) 返回包括右表中的所有記錄和左表中聯(lián)結字段相等的記錄
    inner join(等值連接) 只返回兩個表中聯(lián)結字段相等的行
  * 內連接查詢: 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;
  * 外連接 右連接:以右表為主顯示核對成功的即on的條件成立的
       SELECT * FROM `user` RIGHT JOIN order_goods on user.uid = order_goods.uid;
  * 子查詢 : 子查詢的關鍵字包括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 mysql
5.目錄結構

6.config文件下mysql.js 數(shù)據(jù)庫連接池
const mysql = require("mysql");
// 創(chuàng)建連接池
let pool = mysql.createPool({
  host: "127.0.0.1", // 主機
  user: "root",        //  mysql認證用戶名
  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,這里需要調用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啟動文件
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);
學習資料 喜歡的童鞋點個贊
1.http://mysql.phpxy.com/75314
2.http://www.manongjc.com/artic...
3.http://www.runoob.com/mysql/m...

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉載請注明本文地址:http://systransis.cn/yun/95876.html

相關文章

  • 實用IT類網站及工具大集合

    摘要:整理的一些實用的類網站及工具。鏈接云適配有時候我們做出的網站沒有用到響應式布局,也可能我們的網站的像素寬度已經規(guī)定成具體的多少像素了。同時提供多個開放,功能實用,非常強大。 整理的一些實用的IT類網站及工具。 1.聚合數(shù)據(jù) 大家在開發(fā)過程中,可能會用到各種各樣的數(shù)據(jù),想找一些接口來提供一些數(shù)據(jù)。比如天氣預報查詢,火車時刻表查詢,彩票查詢,身份證查詢等等。有了這個接口,直接調用即可。各種...

    rollback 評論0 收藏0
  • 30歲零基礎自學編程,先學哪種語言最好?

    摘要:大學,光學工程研究生畢業(yè),和程序猿完全不搭邊。那怎么辦,試著學一學唄,學習才是程序猿的天性。所以我在想程序猿是不是都需要新知識刺激一下,才能保持興奮的頭腦。有句話說的很對程序猿就像好奇的貓,追著毛球的線頭玩,最后一個毛球在腦袋里攪漿糊。 說說我自己的經歷。211大學,光學工程研究生畢業(yè),和程序猿完全不搭邊。 畢業(yè)后進了成都某國字頭研究所,在行業(yè)里摸爬滾打了四年,2018年機緣巧合在家養(yǎng)...

    xietao3 評論0 收藏0
  • ES6-7

    摘要:的翻譯文檔由的維護很多人說,阮老師已經有一本關于的書了入門,覺得看看這本書就足夠了。前端的異步解決方案之和異步編程模式在前端開發(fā)過程中,顯得越來越重要。為了讓編程更美好,我們就需要引入來降低異步編程的復雜性。 JavaScript Promise 迷你書(中文版) 超詳細介紹promise的gitbook,看完再不會promise...... 本書的目的是以目前還在制定中的ECMASc...

    mudiyouyou 評論0 收藏0

發(fā)表評論

0條評論

AbnerMing

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<