使用 Node.js + MySQL 开发 RESTful API 接口(Node.js + Express + Sequelize + MySQL)

本教程手把手教你搭建一套使用 Node.js + Express + Sequelize + MySQL 构建的后端服务,详细描述通过 Node.js 与数据库通讯。整个服务搭建起来后,我们使用 Postman 对整个后端服务进行测试。本教程每段代码我都亲手测过,保证百分百没有错误,请打开你的 terminal 跟随本教程一起操作,从这里开始,成为一名后端工程师。

全栈实战教程:

后端实战教程:

如果你正在搭建后台管理工具,又不想处理前端问题,推荐使用卡拉云,卡拉云是新一代低代码开发工具,可一键接入常见数据库及 API ,无需懂前端,仅需拖拽即可快速搭建属于你自己的后台管理工具,一周工作量缩减至一天,详见本文文末。

图片[1]-使用 Node.js + MySQL 开发 RESTful API 接口(Node.js + Express + Sequelize + MySQL)-JieYingAI捷鹰AI

后端部分:node.js + Express + Sequelize + MySQL后端部分 - node.js + Express + MySQL 后端部分

后端部分我们使用 node.js + Express + MySQL 的方式来构建。node.js 是一个开源跨平台运行环境,它让 JavaScript 可以运行在后端服务器上,Express 是 node.js Web app 框架,其底层是对 node.js 的 HTTP 模块封装,增加路由,中间件等特性,我们会在本教程中使用 Express 搭建 RESTful API ,让前后端通过 API 进行数据交换。最后是 MySQL 数据库,最终前后端操作的数据会存放在 MySQL 数据库中。

后端 node.js 项目结构

图片[2]-使用 Node.js + MySQL 开发 RESTful API 接口(Node.js + Express + Sequelize + MySQL)-JieYingAI捷鹰AI

好了,整体的后端服务器架构介绍就到这里,接下来进入实践环节,请打开你的 Terminal 我们一起来。切记,只有亲手实践过,才能透彻理解。

安装 node.js

node.js 是一种 JavaScript 的运行环境,它可以让 JS 脱离浏览器在后端服务器上运行。本教程的后端环境使用 node.js 搭建。请先确认你的计算机中是否已安装 node.js 。如果尚未安装请前往 node 官网下载安装。

安装或准备可远程连接的 MySQL 数据库

本教程搭建的 app 数据存放在 MySQL 中,你可以在本机安装 MySQL ,也可以准备一台可远程连接的 MySQL 数据库。

如果你还没有安装 MySQL 数据库,可根据《如何安装 MySQL》教程安装 MySQL 数据库,或在腾讯云之类的云服务商购买现成的 MySQL 数据库。

准备好 node.js 和 MySQL 数据库后,咱们就开始搭建后端部分。

创建 node.js App

在根目录创建 node.js 的项目文件夹

mkdir nodejs-express-sequelize-mysql-kalacloud
cd nodejs-express-sequelize-mysql-kalacloud

接下来配置后端的所有操作都在 nodejs-express-sequelize-mysql-kalacloud 这个文件夹中完成。

我们先来初始化 node.js,使用 npm init 配置 package.json 文件。package.json 定义了当前项目所需要的各种模块以及项目配置信息(包含当前项目所需的开发和运行环境等信息)。

图片[3]-使用 Node.js + MySQL 开发 RESTful API 接口(Node.js + Express + Sequelize + MySQL)-JieYingAI捷鹰AI

npm init
name: (nodejs-express-sequelize-mysql)
version: (1.0.0)
description: Node.js Rest Apis with Express, Sequelize , MySQL.
entry point: (index.js) server.js
test command:
git repository:
keywords: nodejs, express, sequelize, mysql, rest, api
author: kalacloud
license: (ISC)
Is this ok? (yes) yes

跟随 node.js 初始化程序填写相应的 app 初始化信息。

{
  "name": "nodejs-mysql-kalacloud-com",
  "version": "1.0.0",
  "description": "Node.js Rest Apis with Express, Sequelize , MySQL.",
  "main": "server.js",
  "scripts": {
    "test": "echo "Error: no test specified" && exit 1"
  },
  "keywords": [
    "nodejs",
    "express",
    "sequelize",
    "mysql",
    "rest",
    "api"
  ],
  "author": "kalacloud",
  "license": "ISC"
}

初始化程序填写完成之后,npm 会自动帮你在根目录下生成package.json 配置文件。

接着我们来安装项目中需要用到的模块:express,sequelize,mysql2和body-parser。

在项目根目录 nodejs-express-sequelize-mysql-kalacloud 执行 npm 命令:

npm install express sequelize mysql2 body-parser cors --save

配置 Express Web 服务器

在根目录中,创建一个新的 server.js 文件

文件位置:nodejs-express-sequelize-mysql-kalacloud/server.js

const express = require("express");
const bodyParser = require("body-parser");
const cors = require("cors");
const app = express();
var corsOptions = {
  origin: "*"
};
app.use(cors(corsOptions));
// content-type:application/json
app.use(bodyParser.json());
// content-type:application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({ extended: true }));
// 简单路由
app.get("/", (req, res) => {
  res.json({ message: "欢迎访问卡拉云后端服务器" });
});
// 设置监听端口
const PORT = process.env.PORT || 8080;
app.listen(PORT, () => {
  console.log(`服务器运行端口: ${PORT}.`);
});

图片[4]-使用 Node.js + MySQL 开发 RESTful API 接口(Node.js + Express + Sequelize + MySQL)-JieYingAI捷鹰AI

好,现在我们在根目录运行指令:node server.js 启动后端服务器。

图片[5]-使用 Node.js + MySQL 开发 RESTful API 接口(Node.js + Express + Sequelize + MySQL)-JieYingAI捷鹰AI

在浏览器中输入 :8080 ,你可以看到后端服务器欢迎信息,这表明我们的后端服务器已经启动。

使用 Sequelize 连接数据库

Sequelize是一个基于 Promise 的 Node.js ORM,目前支持 Postgres、MySQL、SQLite 和 Microsoft SQL Server。 它是一个很成熟的框架,有很好的性能和速度。

我们先来配置 Sequelize ,在根目录新建 app 文件夹,然后再其中建一个 config 文件夹,我们把 Sequelize 的配置文件放在这里,新建 db.config.js 文件,在这个文件中写入你数据库连接的配置信息。

文件位置:nodejs-express-sequelize-mysql-kalacloud/app/config/db.config.js

module.exports = {
  HOST: "192.168.1.5",
  USER: "kalacloud",
  PASSWORD: "YOUR_PASSWORD",
  DB: "demo",
  port:3306,
  dialect: "mysql",
  pool: {
    max: 5,
    min: 0,
    acquire: 30000,
    idle: 10000
  }
};

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享