在上篇文章 使用 Node.js + Express開發服務端 已經學習了NodeJS+Express基本用法,其中API接口返回的數據是假數據,並沒有關聯數據庫查詢。在本篇文章中我們將實現基本的數據交互並實現簡單的增刪改查。如果你還未閱讀上篇文章請移步閱讀~~~
1. 在上篇文章的項目基礎上配置MySQL
確保你電腦中已安裝了MySQL環境,我們使用的IDE爲Navicat. 新建test數據庫並新建一個 Table命名爲 user,添加幾條數據(用於查詢)
Mysql的準備到此就準備完成,接下來是我們本篇教程的重點,怎樣使用NodeJS+Express鏈接MySQL
2. 安裝MySQL模塊
打開我們剛剛創建的 node_express工程 這裏我使用的是Visual Studio Code
接着執行如下命令
npm install 安裝mysql依賴
接着我們向工程中添加一個 db 目錄 用於存放MySQL配置信息
並在 db 目錄總新建一個 DBConfig.js 文件並添加如下內容
//mysql數據庫配置
module.exports = {
mysql: {
host:'127.0.0.1',
port:'3306',
user:'root',
password:'這裏填寫你的mysql的連接密碼',
database:'test'
}
}
3. 添加API接口調用SQL語句
緊接着繼續在 db目錄中添加 Usersql.js 並鍵入如下內容
var UserSQL = {
insert:'INSERT INTO User(name,gender,age) VALUES(?,?,?)',
queryAll:'SELECT * FROM user',
getUserById:'SELECT * FROM user WHERE id = ? ',
};
module.exports = UserSQL;
Usersql.js 的主要作用是提供增刪改查sql語句。
改動routes 目錄中的users.js 向外暴露我們操作 User 的API接口。
這裏我只在 users.js 中添加一個 addUser/getAll 接口 內容如下
var express = require('express');
var router = express.Router();
//導入MySQL模塊
var mysql = require('mysql');
var dbConfig = require('../db/DBConfig');
var userSQL = require('../db/Usersql');
//使用DBConfig.js的配置信息創建一個MySQL連接池
var pool = mysql.createPool(dbConfig.mysql);
//響應一個JSON數據
var responseJSON = function(res, ret){
if(typeof ret === 'undefined'){
res.json({
code:'-200',
msg:'操作失敗'
});
}else{
res.json(ret);
}
};
//添加用戶
router.get('/addUser', function(req, res, next){
//從連接池獲取連接
pool.getConnection(function(err, connection){
//獲取前臺頁面傳過來的參數
var param = req.query || req.params;
//建立連接 添加一個用戶信息
connection.query(userSQL.insert, [param.name,param.gender,param.age], function(err, result){
if(result){
result = {
code:200,
msg:'添加成功'
};
}
//以json形式,把操作結果返回給前臺頁面
responseJSON(res, result);
//釋放連接
connection.release();
});
});
});
//查詢所有用戶
//添加用戶
router.get('/getAll', function(req, res, next){
//從連接池獲取連接
pool.getConnection(function(err, connection){
// //獲取前臺頁面傳過來的參數
// var param = req.query || req.params;
//建立連接 添加一個用戶信息
connection.query(userSQL.queryAll, function(err, result){
console.log(result);
//以json形式,把操作結果返回給前臺頁面
responseJSON(res, result);
//釋放連接
connection.release();
});
});
});
module.exports = router;
接着重新啓動服務器 在瀏覽器訪問,或者用Postman都可以
http://127.0.0.1:3000/users/getAll
http://127.0.0.1:3000/users/addUser?name=helloMysql&gender=1&age=18
{
"code": 200,
"msg": "添加成功"
}
其他sql的語法大家可以自行體驗,這裏就不在一一贅述,如果你在測試過程中遇到問題歡迎留言交流.