如何使用 Node.js 开发 RESTful API 接口(Node.js + Express + Sequelize + MySQL)
本教程手把手教你搭建一套使用 Node.js + Express + Sequelize + MySQL 构建的后端服务,详细描述通过 Node.js 与数据库通讯。整个服务搭建起来后,我们使用 Postman 对整个后端服务进行测试。本教程每段代码我都亲手测过,保证百分百没有错误,请打开你的 terminal 跟随本教程一起操作,从这里开始,成为一名后端工程师。
全栈实战教程:
后端实战教程:
如果你正在搭建后台管理工具,又不想处理前端问题,推荐使用,卡拉云是新一代低代码开发工具,可一键接入常见数据库及 API ,无需懂前端,仅需拖拽即可快速搭建属于你自己的后台管理工具,一周工作量缩减至一天,详见本文文末。
crud-er
后端部分: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 项目结构
06-01-node
好了,整体的后端服务器架构介绍就到这里,接下来进入实践环节,请打开你的 Terminal 我们一起来。切记,只有亲手实践过,才能透彻理解。
安装 node.js
node.js 是一种 JavaScript 的运行环境,它可以让 JS 脱离浏览器在后端服务器上运行。本教程的后端环境使用 node.js 搭建。请先确认你的计算机中是否已安装 node.js 。如果尚未安装请前往 。
安装或准备可远程连接的 MySQL 数据库
本教程搭建的 app 数据存放在 MySQL 中,你可以在本机安装 MySQL ,也可以准备一台可远程连接的 MySQL 数据库。
如果你还没有安装 MySQL 数据库,可根据《如何安装 MySQL》教程安装 MySQL 数据库,或在腾讯云之类的云服务商购买现成的 MySQL 数据库。
准备好 node.js 和 MySQL 数据库后,咱们就开始搭建后端部分。
创建 node.js App
在根目录创建 node.js 的项目文件夹
代码语言:txt
复制
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 定义了当前项目所需要的各种模块以及项目配置信息(包含当前项目所需的开发和运行环境等信息)。
06-02-node-init
代码语言:txt
复制
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 初始化信息。
代码语言:txt
复制
{
"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 命令:
代码语言:txt
复制
npm install express sequelize mysql2 body-parser cors --save
配置 Express Web 服务器
在根目录中,创建一个新的 server.js 文件
文件位置:nodejs-express-sequelize-mysql-kalacloud/server.js
代码语言:txt
复制
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}.`);
});
06-03-node-server
好,现在我们在根目录运行指令:node server.js 启动后端服务器。
node-chrome
在浏览器中输入 :8080 ,你可以看到后端服务器欢迎信息,这表明我们的后端服务器已经启动。
使用 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
代码语言:txt
复制
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
}
};