總理說了:學(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)如下:

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ù)顯示到前端