Nodejs+Express操作Mysql

總理說了:學(xué)知識不寫demo就是耍流氓。

接下來就談?wù)勗趺从?code>nodejs來操作mysql數(shù)據(jù)庫。

1.安裝mysql

 sudo apt-get install mysql-server mysql-client

在此安裝過程中會讓你輸入root用戶的密碼,按照要求輸入即可。
安裝完成之后可以測試是否安裝成功:

 sudo netstat -tap | grep mysql

若輸出

 tcp 0 0 localhost:mysql *:* LISTEN 13308/mysqld

則表示安裝成功。

在shell下操作mysql
2.啟動mysql :

/etc/init.d/mysql start

3.登陸mysql

 mysql -u用戶名 -p用戶密碼

比如:鍵入命令mysql -uroot -p, 回車后提示你輸入密碼,輸入之后,回車即可進入到mysql中了,mysql的提示符是:

 mysql>

設(shè)置數(shù)據(jù)庫中文格式

 mysql> alter table User convert to character set utf8;

如果感覺shell下操作不方便,可以安裝MySQL客戶端

4.我用的是navicat,可以先去官網(wǎng)下載https://www.navicat.com/download/

解壓下載好的文件
進入文件目錄,然后執(zhí)行

./start_navicat

navicat就打開了,就可以創(chuàng)建數(shù)據(jù)庫啦。

5.安裝express

npm install express --save-dev

6.在server文件夾下創(chuàng)建connection.js文件,編寫mySQL數(shù)據(jù)庫連接配置

const mysql = require('mysql');

let db = mysql.createConnection({
  host: '127.0.0.1',
  user: 'root',
  password: '123456',
  database: 'userInfo',
  port: 3306
});

db.connect(function (err) {
  if (err) {
      console.log("err" + err.stack);
      return;
  }
  console.log("connection id " + db.threadId);
});

module.exports = db;

7.在server文件夾同級目錄下創(chuàng)建server.js文件,內(nèi)容如下:

const express = require('express');
const app = new express();
const db = require('./server/connection');

const bodyParser = require('body-parser');

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: true}));

app.use(express.static(__dirname + '/'));

app.listen(3000, () => {
  console.log('server start, listening is 3000');
});

module.exports = app;

此時,執(zhí)行node server.js,如果看到

 server start, listening is 3000
 connection id 41

說明數(shù)據(jù)庫連接成功。

此時的目錄結(jié)構(gòu)如下:


目錄結(jié)構(gòu).png

demo地址:https://github.com/goddessting/express-nodejs-mysql-demo

8.對數(shù)據(jù)庫的CRUD操作:
為了方便起見,在server文件夾下創(chuàng)建usersql.js文件,專門存放數(shù)據(jù)庫的CRUD操作:

let UserSQL = {
  insert: 'INSERT INTO User(username,name,age,sex,telephone,email,other)
            VALUES(?,?,?,?,?,?,?)',
  queryAll: 'SELECT * FROM User',
  update:'UPDATE User SET USERNAME=?, NAME=?, AGE=?, SEX=?, TELEPHONE=?, 
          EMAIL=?, OTHER=? WHERE id=?',
  delete: 'DELETE FROM User WHERE id=?',
  queryById: 'SELECT * FROM User WHERE id=?',
};

module.exports = UserSQL;

9.實現(xiàn)插入功能:

 //server/routers/insertUser.js
 let express = require('express');
 let router = express.Router();

 let db = require('../connection');

 let userSQL = require('../usersql');

 router.post('/insertUser', (req, res) => {
    db.query(userSQL.insert, [req.body.username, req.body.name, req.body.age, 
    req.body.sex, req.body.telephone, req.body.email, req.body.other], function (err, result) {
    if (err) return err;

    res.send('User added to database with ID: ' + result.insertId);
 });
});

module.exports = router;

此時,將server.js中的以下代碼刪除:

 const db = require('./server/connection');

通過postman測試,如果返回User added to database with ID: **,說明插入成功。

其他功能就不貼代碼了,相信大家都會了。

參考資料:

初識NodeJS服務(wù)端開發(fā)(Express+MySQL)
Mysql常用命令行大全
Ubuntu下如何配置java ee環(huán)境
demo: node.js+mysql把數(shù)據(jù)顯示到前端

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容