使用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 分开写,具体的自己思考,很简单,不会可以私信我

 

转载于:https://www.cnblogs.com/kusaki/p/11396997.html

你可能感兴趣的:(数据库,json,前端)