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

資訊專欄INFORMATION COLUMN

Node.js項(xiàng)目中操作MySQL

derek_334892 / 2943人閱讀

摘要:初始化項(xiàng)目創(chuàng)建項(xiàng)目目錄,并使用初始化項(xiàng)目后,執(zhí)行下面操作安裝依賴創(chuàng)建填寫你的填寫你的用戶名填寫你的密碼在中執(zhí)行,當(dāng)看到中打印出,表明數(shù)據(jù)庫(kù)連接成功。打開瀏覽器訪問(wèn),當(dāng)看到屏幕顯示時(shí),表名項(xiàng)目初始化成功。

本文是一篇使用mysql這個(gè)npm模塊操作MySQL數(shù)據(jù)庫(kù)的基礎(chǔ)教程。 不涉及MySQL的安裝和配置,如果電腦中還未安裝MySQL, 推薦安裝WAMP、XAMPP等集成環(huán)境。本文中還使用到了輕量級(jí)的Node.js框架Koa搭建web程序,為的是通過(guò)前端瀏覽器請(qǐng)求的方式來(lái)模擬項(xiàng)目場(chǎng)景,你無(wú)需掌握Koa框架的語(yǔ)法也是可以輕松閱讀本文的。

初始化項(xiàng)目

創(chuàng)建項(xiàng)目目錄,并使用npm init初始化項(xiàng)目后,執(zhí)行下面操作:

安裝依賴
npm install mysql koa koa-router
創(chuàng)建index.js
// index.js

const Koa = require("koa");
const Router = require("koa-router");
const mysql = require("mysql");

const app = new Koa();
const router = new Router();

const connection = mysql.createConnection({
  host: "localhost", // 填寫你的mysql host
  user: "root", // 填寫你的mysql用戶名
  password: "123456" // 填寫你的mysql密碼
})

connection.connect(err => {
  if(err) throw err;
  console.log("mysql connncted success!");
})

router.get("/", ctx => {
  ctx.body = "Visit index";
})
app.use(router.routes());

app.listen(3000);

在shell中執(zhí)行node index.js,當(dāng)看到shell中打印出mysql connected success!,表明MySQL數(shù)據(jù)庫(kù)連接成功。

打開瀏覽器, 訪問(wèn)localhost:3000,當(dāng)看到屏幕顯示Visit index時(shí),表名項(xiàng)目初始化成功。

數(shù)據(jù)庫(kù)操作 創(chuàng)建數(shù)據(jù)庫(kù)

當(dāng)訪問(wèn)/createdb時(shí),創(chuàng)建一個(gè)mysqlkoa的數(shù)據(jù)庫(kù),代碼如下:

router.get("/createdb", ctx => {
  return new Promise(resolve => {
    const sql = `CREATE DATABASE mysqlkoa`;

    connection.query(sql, (err) => {
      if (err) throw err;
      ctx.body = {
        code: 200,
        msg: `create database mysqlkoa success!`
      }
      resolve();
    });
  })
})

重新執(zhí)行node index.js,并使用瀏覽器訪問(wèn)localhost:3000/createdb

創(chuàng)建數(shù)據(jù)表

為了方便,我們直接在連接時(shí)使用剛才創(chuàng)建的數(shù)據(jù)庫(kù),需要在mysql.createConnection中添加database:mysqlkoa的配置項(xiàng)。

const connection = mysql.createConnection({
  host: "localhost",
  user: "root",
  password: "123456",
  database: "mysqlkoa" // 添加該列
})

當(dāng)訪問(wèn)/createtable時(shí),我們創(chuàng)建一個(gè)數(shù)據(jù)表fe_frame,該表用來(lái)保存前端框架的數(shù)據(jù):

router.get("/createtable", ctx => {
  return new Promise(resolve => {
    const sql = `CREATE TABLE fe_frame(
      id INT(11) AUTO_INCREMENT PRIMARY KEY,
      name VARCHAR(255),
      author VARCHAR(255)
    )`;
    connection.query(sql, (err ,results, filelds) => {
      if (err) throw err;
      ctx.body = {
        code: 200,
        msg: `create table of fe_frame success!`
      }
      resolve();
    })
  })
})

重新執(zhí)行node index.js,并使用瀏覽器訪問(wèn)localhost:3000/createtable

插入數(shù)據(jù)
插入單條數(shù)據(jù)

當(dāng)訪問(wèn)/insert時(shí),用來(lái)插入單條數(shù)據(jù):

router.get("/insert", ctx => {
  return new Promise(resolve => {
    const sql = `INSERT INTO fe_frame(name, author)
    VALUES("vue", "Evan")`;
    connection.query(sql, (err) => {
      if (err) throw err;
      ctx.body = {
        cde: 200,
        msg: `insert data to fe_frame success!`
      }
      resolve();
    })
  })
})

重新執(zhí)行node index.js,并使用瀏覽器訪問(wèn)localhost:3000/insert

插入多條數(shù)據(jù)

當(dāng)訪問(wèn)/insertmulti時(shí),用來(lái)插入多條數(shù)據(jù):

router.get("/insertmulti", ctx => {
  return new Promise(resolve => {
    const sql = `INSERT INTO fe_frame(name, author)
    VALUES ?`;
    const values = [
      ["React", "Facebook"],
      ["Angular", "Google"],
      ["jQuery", "John Resig"]
    ];
    connection.query(sql, [values], (err, result) => {
      if (err) throw err;
      ctx.body = {
        code: 200,
        msg: `insert ${result.affectedRows} data to fe_frame success!`        
      }
      resolve();
    })
  })
})

重新執(zhí)行node index.js,并使用瀏覽器訪問(wèn)localhost:3000/insertmulti

使用phpMyAdmin訪問(wèn),可以看到此時(shí)mysqlkoa表如下

刪除數(shù)據(jù)

當(dāng)訪問(wèn)/delete時(shí),刪除相應(yīng)行。我們使用請(qǐng)求參數(shù)name來(lái)指定刪除哪個(gè)框架,在服務(wù)器端使用ctx.query.name獲取,代碼如下:

router.get("/delete", ctx => {
  return new Promise(resolve => {
    const name = ctx.query.name;
    const sql = `DELETE FROM fe_frame WHERE name = "${name}"`;
    connection.query(sql, (err, result) => {
      if (err) throw err;
      ctx.body = {
        code: 200,
        msg: `delete ${result.affectedRows} data from fe_frame success!`
      };
      resolve();
    })
  })
})

重新執(zhí)行node index.js,并使用瀏覽器訪問(wèn)http://localhost:3000/delete?name=jQuery

修改數(shù)據(jù)

當(dāng)訪問(wèn)/update時(shí),更新vue框架的作者名為Evan You,代碼如下:

router.get("/update", ctx => {
  return new Promise(resolve => {
    const sql =  `UPDATE fe_frame SET author = "Evan You" WHERE NAME = "vue"`;
    connection.query(sql, (err, result) => {
      if (err) throw err;
      ctx.body = {
        code: 200,
        msg: `update ${result.affectedRows} data from fe_frame success!`
      };
      resolve();
    })
  })
})

重新執(zhí)行node index.js,并使用瀏覽器訪問(wèn)http://localhost:3000/update

查找數(shù)據(jù)

當(dāng)訪問(wèn)/select時(shí),獲取滿足請(qǐng)求參數(shù)中框架名條件的項(xiàng),代碼如下:

router.get("/select", ctx => {
  return new Promise(resolve => {
    let name = ctx.query.name;
    const sql = `SELECT * FROM fe_frame WHERE name = "${name}"`;
    connection.query(sql, (err, result) => {
      if (err) throw err;
      ctx.body = {
        code: 200,
        data: result
      }
      resolve();
    })
  })
})

重新執(zhí)行node index.js,并使用瀏覽器訪問(wèn)http://localhost:3000/select?name=vue

mysql文檔地址: https://www.npmjs.com/package...

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/98792.html

相關(guān)文章

  • vue+node+mysql搭建個(gè)人博客(一)

    摘要:其中用來(lái)完成請(qǐng)求,將添加的原型上后就不需要再在每個(gè)需要使用它的頁(yè)面引入了每個(gè)頁(yè)面都相當(dāng)于一個(gè)組件,文件以結(jié)尾,第一次啟動(dòng)成功時(shí)看到的頁(yè)面就是組件,路徑。 學(xué)習(xí)筆記...在線地址:cl8023.com github 數(shù)據(jù)庫(kù)已改為mongodb 快速搭建 node 后端服務(wù)Github-quick-node-server 準(zhǔn)備工作 安裝node,這是必須的 新版node自帶npm...

    peixn 評(píng)論0 收藏0
  • 一個(gè)簡(jiǎn)單express+jade+mysql+bootstrap+nodejs的demo

    摘要:迅速發(fā)展,目前最熱的構(gòu)建框架非莫屬,在上有的就可以證明。下面就以為中心構(gòu)建一個(gè)前后端都包含在內(nèi)的簡(jiǎn)單吧。簡(jiǎn)單的能讓你迅速地了解到工作流程。創(chuàng)建并初始化項(xiàng)目首先,進(jìn)入到你的工作目錄新建一個(gè)項(xiàng)目目錄并打開通過(guò)命令為你的項(xiàng)目創(chuàng)建一個(gè)文件。 Nodejs迅速發(fā)展,目前最熱的Nodejs構(gòu)建框架非express莫屬,在Github上有32k的star就可以證明。下面就以Nodejs為中心構(gòu)建一個(gè)...

    sherlock221 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<