使用nodeJS創建API接口,連接mysql數據庫(新手向簡易版)


  博主在學習安卓課程做期末程序的時候就一直想自己做API了,結果網上的教程感覺都太雜,很多都文不對題,找不到一個明確的思路,結果就只能放棄改用jdbc實現數據庫交互,現在學了前端,又接觸了一點nodeJS之后,才終於有了思路,最近也成功給自己放在服務器上的網站部署了API。現在就來分享一下,也順便給自己留個備份。

ps:只是自己突然想到的做法,而且個人覺得真的是簡易版,可能不標准,但親測能用。

一、前期准備

首先聲明:不懂也沒關系,直接仿照代碼,需要修改的地方我會用紅色標注出來,不過mysql一定要懂一點,會寫sql語句就行。

需要的下載的東西(寫給完全的小白,比如幾個月前的我):vs code 、nodeJS、mysql

博主是在學菜鳥課程學習的nodeJS,本來也沒想做API,結果學到 express、api 還有 mysql這部分時,突然靈光一閃,把api內部的語句替換成mysql不就能做一個和數據庫相連的api了嗎,下面是教程鏈接

express教程RESTful API教程連接 MySQL

有興趣了解nodeJS的同學可以看一下,主要是這三個章節。沒興趣的直接跳過,下面直接上代碼

二、主要操作

創建一個js文件,如 server.js

打開終端,安裝express和mysql依賴

npm i express -S
npm i mysql -S

主要代碼

const express = require('express');
const app = express();
const mysql = require('mysql');

const connection = mysql.createConnection({
    host: 'localhost',
    user: 'root',
    password: '123456',     // 改成你自己的密碼
    database: 'test'    // 改成你的數據庫名稱
});

connection.connect();

// 下面是解決跨域請求問題
app.all('*', function(req, res, next) {
    res.header("Access-Control-Allow-Origin", "*");
    res.header("Access-Control-Allow-Headers", "X-Requested-With");
    res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS");
    res.header("X-Powered-By",' 3.2.1');
    res.header("Content-Type", "application/json;charset=utf-8");
    next();
 });

// 這里就是主要要修改的地方,其實也就一行
// 把 address 改成你自己定的地址,就是連接訪問的那個地址
app.get('/address',function(err,res){
    const sql = 'select * from carousel'; // 寫你需要的sql代碼,你要是不會寫那我就真的沒辦法了
    connection.query(sql,function(err,result){
        if(err){
            console.log('[SELECT ERROR] - ', err.message);
            return;
        }
        // result內放的就是返回的數據,res是api傳數據
        // 返回的數據需要轉換成JSON格式
        res.json(result); 
    }); 
})    

var server = app.listen(8081, '127.0.0.1', function () {

    var host = server.address().address;
    var port = server.address().port;

    console.log("地址為 http://%s:%s", host, port);
})

最后執行 node server.js(文件名)

在瀏覽器輸入 127.0.0.1::8081/address 即可,address改成你設定的

三、補充說明

  1. 這里只示范了get,post不能直接用,需要引入第三方插件
  2. app.get() 可以不止一個,復制黏貼,改變地址和改成你想要執行的功能的SQL語句就行
  3. ip地址和端口可以自己改,如果想放到自己的服務器上,把ip改成服務器的內網地址
  4. mysql長期不用會自動斷開連接(8小時),本地基本上碰不到這種情況,放在服務器上時要多加一個回調,具體參考這位大佬 server closed
  5. mysql 的部分可以利用 route 和 api 分開寫,具體的自己思考,很簡單,不會可以私信我

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM