当前位置:   article > 正文

Node搭建后端框架【模块化,使用MySQL】_nodejs mysql框架

nodejs mysql框架

这篇文章可能和一般的使用express不到10行代码构建一个服务器不太一样,因为我之前有使用过springboot进行后端框架的搭建,所以感觉这种方法虽然简单,但是可能就缺乏扩展性规范性

0.项目背景

当前我正在开发一个自己使用的小型项目,由于是小型项目而且仅自己使用,所以感觉就没必要直接上SpringBoot作为后端框架,而且我希望能接触到更多的东西,于是选择使用NodeJS作为后端服务器。

1.安装NodeJS和MySQL

首先要保证你的电脑中有Node和MySQL,如果没有的话,可以参考以下教程

安装Node.js
安装MySQL— 5.7.19(超详细–图文教程)

2.创建一个Node.js项目

在你需要放NodeJS后端的位置打开cmd

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BIGjDKkD-1679731516961)(assets/image-20230325144650-n69gn7l.png)]

创建项目目录

mkdir 你的文件名
  • 1

进入目录

cd 你的文件名
  • 1

初始化项目

npm init
  • 1

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yu0bJc3a-1679731516962)(assets/image-20230325144727-2v432m5.png)]

没有什么特殊要求直接默认Enter即可

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GrS5zpr0-1679731516963)(assets/image-20230325144818-9lm7yss.png)]

3.安装必要模块

通过vscode打开刚才创建的文件夹,安装以下模块

  • express:一个流行的 Web 框架,用于搭建 Web 服务器和处理 HTTP 请求。
  • mysql2:一个 MySQL 的 Node.js 驱动程序,用于连接和操作 MySQL 数据库。
  • dotenv:一个用于从 .env 文件中加载环境变量的模块,可以帮助你安全地管理敏感信息,例如数据库密码。

你可以使用以下命令安装这些模块:

npm install express mysql2 dotenv forwarded
  • 1

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fzJ3OLMz-1679731516963)(assets/image-20230325145000-j1v7c2c.png)]

这里安装的时候可能会被系统代理(魔法)影响,所以请先关闭魔法之后再进行安装

等待安装成功

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yUf5bDnE-1679731516963)(assets/image-20230325145558-veas19r.png)]

4.创建HTTP服务器

根目录 下创建一个index.js文件

使用 express 模块创建一个 HTTP 服务器非常简单,你只需要编写以下代码:

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

app.get('/', (req, res) => {
  res.send('Hello, world!');
});

app.listen(3000, () => {
  console.log('Server is running on port 3000');
});

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

启动服务器

node index.js
  • 1

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vSgYu5d7-1679731516963)(assets/image-20230325150205-4823l29.png)]

这个代码会创建一个 HTTP 服务器,监听在 localhost:3000 上。当你在浏览器中访问 http://localhost:3000 时,你将看到一个显示“Hello, world!”的页面。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ntNvnilH-1679731516964)(assets/image-20230325150220-njvwhv4.png)]

5.连接MySQL数据库(service)

创建一个数据库

首先需要创建一个后续需要使用的数据库,可以通过workbench或sqlserver等工具

create database 数据库名
  • 1

创建.env文件配置mysql

DB_HOST=localhost
DB_USER=root
DB_PASSWORD=你的密码
DB_NAME=数据库的名称
  • 1
  • 2
  • 3
  • 4

创建目录serviceindex.js

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-o2rioPc1-1679731516964)(assets/image-20230325151256-c7et4i4.png)]

编辑index.js

使用 mysql2 模块连接到 MySQL 数据库也很简单。你只需要编写以下代码:

const mysql = require('mysql2/promise');
require('dotenv').config();

const pool = mysql.createPool({
  host: process.env.DB_HOST,
  user: process.env.DB_USER,
  password: process.env.DB_PASSWORD,
  database: process.env.DB_NAME
});

module.exports = pool;

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

6.创建路由 和 controller

这里的路由不是我们前端页面的路由,而是一个路由对应一个请求地址

创建目录

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6qwnmd6S-1679731516964)(assets/image-20230325160355-j3394x0.png)]

创建一张数据表格

创建一张表格,测试是否连接上数据库

const pool = require("../../service/index")

async function createTimeTable(req, res) {
    try {
        await pool.query(`
        CREATE TABLE IF NOT EXISTS time_record (
          id INT AUTO_INCREMENT PRIMARY KEY,
          time date NOT NULL,
          name VARCHAR(255) NOT NULL,
          tag VARCHAR(255) NOT NULL,
          duration smallint NOT NULL
        )
      `);

        res.status(200).send('Time table created successfully!');
    } catch (error) {
        console.error('Error creating time table:', error);
        res.status(500).send('Failed to create time table');
    }
}

module.exports = {
    createTimeTable,
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

创建一个router对应

const express = require('express');
const router = express.Router();
const timeController = require('./time');

router.get('/create', timeController.createTimeTable)

module.exports = router
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

7.启动服务器

修改index.js

const express = require('express');
const app = express();
const routes = require('./controller/router');
require('dotenv').config();

app.use(express.json());
app.use(routes);

const port = process.env.PORT || 3000;
app.listen(port, () => {
    console.log(`Server is running on port ${port}`);
});
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

访问地址localhost:3000/create

这里的create是对应之前设置的 route

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jYhG3LjD-1679731516964)(assets/image-20230325154909-nfoetcb.png)]

创建成功

我们去workbench中去看看

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SPjI9WRu-1679731516965)(assets/image-20230325154940-2mtvojw.png)]

是存在的!证明整体的是没问题的


当前只是简单的搭好了整体的框架,后续将需要我们进行各个模块的填充和业务逻辑的实现

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/469535
推荐阅读
相关标签
  

闽ICP备14008679号