如何用node.js + MySQL 搭建一个前后端分离的服务器?

514 阅读2分钟

前言

最近写了一个个人的博客,因为要对博客里的文章进行一些增删改查的操作,要涉及到后台服务器,并且可以跟我的Vue项目相关联,所以就用node.js和MySQL自己搭建了一个服务器,做了相关的后台接口。

流程

1. 首先新建一个文件夹,在 VSCode 打开

2. 打开终端,初始化项目:

npm init -y
  • 初始化完毕后,项目里面会多一个node_modules文件夹和两个package文件

image.png

image.png

3. 下载相关插件:

npm install express mysql body-parser cors --save
  • 以上插件的作用: 1. express:搭建服务器的插件 2. mysql:操作数据库的插件 3. body-parser:获取处理前端传递的信息 4. cors:跨域

4. 在该文件夹创建以下文件

  • database.js
  • router.js
  • index.js

5. database.js主要用来写访问数据库的一些相关配置,将数据库的信息如实写入即可:

// 导入mysql插件
const mysql = require('mysql')

//建立连接(拿我的本地数据库为例子,localhost默认端口是127.0.0.1)
const conn = mysql.createConnection(config: {
    host: '127.0.0.1',
    user: 'root',
    password: '1234',
    database: 'blog',
    multipleStatements: true
});

conn.connect();

//将数据库暴露出去
modules.exports = conn;

6. router.js用来写与客户端关联的接口

// 导入express
let express = require('express');
//加载路由
let router = express.Router();
//导入database数据库
const conn = require('./database');

//写接口(就拿新增一篇文章为例子)
router.post('/api/insertList', function (req, res) {
    const sqlStr = 'INSERT INTO artical SET ?'; //SQL语句,在数据库里面增加一行文章数据
    let { body } = req; //第一次使用的话这里要注意,req.body才是客户端传输过来的数据
    conn.query(sqlStr, body, function (err) {
        if (err) {
            res.json({ code: 1, msg: err });
            // console.log('新增失败', err);
        }
        else {
            res.json({ code: 0 });
            // console.log('新增成功');
        }
    });
});

//导出路由
modules.exports = router;
  • 当然,就一个新增文章的接口明显是不够用的,你可以模仿上面接口的写法,自己再添加一些新的接口。

7. index.js为整个后端的文件入口

//导入相关插件
const express = require('express');
const bodyParser = require('body-parser');
//创建一个app
const app = express();
//引入router
var router = require('./router');
//设置跨域
app.use(require('cors')());
//挂载参数处理中间件
app.use(bodyParser.urlencoded({ extended: false }));
//处理json格式数据
app.use(bodyParser.json());
//使用路由
app.use('/', router);
//开启监听
app.listen(3000, function (req, res) {
    console.log('http://localhost:3000'); // http://localhost:3000就是我的服务器的端口了
    输
});

8. 启动服务器

  • 现在,一个简单的node服务器已经搭好了,我们可以在终端通过node index.js启动服务器。
  • 启动之后,就可以在自己本地的前端项目中去使用接口了。例如上面的新增文章的接口,在前端可以通过用axios请求http://localhost:3000/api/insertList进行数据传输。