nodeJS を使用して API インターフェイスを作成し、mysql データベースに接続します

1. 事前準備

ダウンロードに必要なもの vscode、nodeJS、mysql 理解できなくてもコードを直接真似すれば大丈夫です

2. 主な操作

jsファイルindex.jsを作成します。

vscode で Express および mysql の依存関係を開いてインストールします


```bash
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);
})

最後にnodeserver.js(ファイル名)を実行します。

ブラウザに「127.0.0.1::8081/address」と入力し、アドレスを設定したアドレスに変更します。

ここでは get のみを示しており、post を直接使用することはできないため、サードパーティのプラグインを導入する必要があります
app.get() は複数ある場合があり、コピー&ペーストしてアドレスを変更し、 の SQL 文に変更します実行したい機能
IP アドレスとポートは自分で使用できます 変更します、自分のサーバーに置きたい場合は、IP をサーバーの内部ネットワーク アドレスに変更します MySQL は長時間自動的に切断され
ます(8 時間). この状況は基本的にローカルでは発生しないため、サーバーに配置するときにさらに追加する必要があります。コールバック、特にこのボス サーバーが閉じていることを参照します。

おすすめ

転載: blog.csdn.net/weixin_44982333/article/details/103290994