文章目录
初始化
创建项目
- 新建
node-app
文件夹作为项目根目录,并在根目录中运行以下命令,初始化包管理配置文件:
npm init -y
- 运行以下命令,安装特定版本express
npm i express@4.17.1
- 在根目录下新建
app.js
作为项目入口文件,并初始化以下代码:
// 导入express模块
const express = require('express')
// 导入expressd的服务器实例
const app = express()
// 调用app.listen方法,指定端口号并启动web服务器
app.listen(3000, () => {
console.log(`api server running at http://127.0.0.1:3000`)
})
配置跨域
- 运行以下命令,安装
cors
中间件:
npm i cors@2.8.5
- 在
app.js
中导入并配置cors
中间件:
// 导入 cors 中间件
const cors = require('cors')
// 将 cors 注册为全局中间件
app.use(cors())
配置解析表单数据的中间件
通过如下的代码,配置解析 application/x-www-form-urlencoded
格式的表单数据的中间件:
app.use(express.urlencoded({
extended: false }))
安装bodyparser
登录、注册要使用post
请求 安装body-parser
npm install body-parser
const bodyParser = require("body-parser")
// 使用body-parse中间件 要放在路由之前
//app.use(bodyParser.urlencoded({ extended: false }))
app.use(bodyParser.json())
初始化用户路由模块
- 在
router
文件夹中,新建admin.js
文件,作为管理员的路由模块,并初始化代码如下:
const express = require('express')
// 创建路由对象
const router = express.Router()
// 注册
router.post('/register', (req, res) => {
res.send('register')
})
// 登录
router.post('/login', (req, res) => {
res.send('login')
})
// 将路由对象共享出去
module.exports = router
- 在
app.js
中,导入并使用管理员路由模块:
// 处理管理员(&用户)登录注册相关的路由
const adminRouter = require('./router/admin')
app.use('/api/admin', adminRouter)
抽离用户路由模块中的处理函数
目的:为了保证 路由模块 的纯粹性,所有的 路由处理函数,必须抽离到对应的 路由处理函数模块 中
- 在
/router_handler/admin_handler.js
中,使用exports
对象,分别向外共享如下两个路由处理函数 :
/**
* 在这里定义和登录注册相关的路由处理函数
* 供/router/admin.js模块进行调用
*/
// 注册用户的处理函数
exports.register = (req, res) => {
res.send('register')
}
// 登录的处理函数
exports.login = (req, res) => {
res.send('login')
}
- 将
/router/admin.js
中的代码修改为如下结构:
const express = require('express')
// 创建路由对象
const router = express.Router()
// 导入登录注册处理函数模块
const adminHandler = require('../router_handler/admin_handler')
// 注册
router.post('/register', adminHandler.register)
// 登录
router.post('/login', adminHandler.login)
// 将路由对象共享出去
module.exports = router
登录注册
新建admin表
在manage
数据库中,新建admin
表如下:
安装并配置mysql模块
在 API 接口项目中,需要安装并配置 mysql 这个第三方模块,来连接和操作 MySQL 数据库
- 运行以下命令,安装
mysql
模块:
npm i mysql@2.18.1
- 在根目录下中新建
/db/index.js
文件,在此自定义模块中创建数据库的连接对象:
// 导入mysql模块
const mysql = require('mysql')
// 创建数据库连接对象