Nodejs服务端开发实战——大事件后台API项目(获取文章的列表数据功能待完善...)

本文介绍了使用Node.js构建大事件后台API项目的过程,包括创建项目、导入包、数据库设计、路由及处理函数编写、表单验证规则等内容,详细讲解了各个模块的代码实现,如app.js、router、schema等,并提供了相关参考资料。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

API接口文档:  说明--ShowDoc一个非常适合IT团队的在线API文档、技术文档工具。你可以使用Showdoc来编写在线API文档、技术文档、数据字典、在线手册https://www.showdoc.com.cn/escook?page_id=3707158761215217

一. 创建项目并导入所需包


1. 新建 api_server 文件夹作为项目根目录,打开VSCode并在其资源管理器中打开项目根目录所在文件夹,在VSCode中新建终端,在终端依次运行以下命令:

# 初始化包管理配置文件
npm init -y
# 安装特定版本的 express 包(服务器)
npm i express@4.17.1
# 安装 cors 中间件(跨域)
npm i cors@2.8.5
# 安装 mysql 模块(数据库)
npm i mysql@2.18.1
# 安装 bcryptjs 对用户密码进行加密
npm i bcryptjs@2.4.3
# 安装 joi 包,为表单中携带的每个数据项,定义验证规则
npm install joi
# 安装 @escook/express-joi 中间件,来实现自动对表单数据进行验证的功能
npm i @escook/express-joi
# 安装生成Token字符串的包
npm i jsonwebtoken@8.5.1
# 安装解析Token的中间件
npm i express-jwt@5.3.3
# 安装 multer 解析表单数据
npm i multer@1.4.2

        1.1. 在项目根目录中新建 app.js ,作为整个项目的入口文件。

        1.2. 在项目根目录中新建 config.js ,作为全局配置文件。

        1.3. 在项目根目录中,新建 uploads 文件夹,用来存放静态资源文件,如文章封面。

2. 在项目根目录中,新建 router 文件夹,用来存放所有的路由模块,专门存放客户端的请求与处理函数之间的映射关系。

        2.1. 在 router 文件夹中,新建 user.js 文件,作为用户登录注册的路由模块。

        2.2. 在 router 文件夹中,新建 userinfo.js 文件,作为用户个人中心的路由模块。

        2.3. 在 router 文件夹中,新建 artcate.js 文件,作为文章分类的路由模块。

        2.4. 在 router 文件夹中,新建 article.js 文件,作为文章的路由模块。

3. 在项目根目录中,新建 router_handler 文件夹,用来存放所有的路由处理函数模块,专门存放每个路由对应的处理函数。

        3.1. 在 router_handler 文件夹中,新建 user.js 文件,作为用户登录注册的路由处理函数模块。

        3.2. 在 router_handler 文件夹中,新建 userinfo.js 文件,作为用户个人中心的路由处理函数模块。

        3.3. 在 router_handler 文件夹中,新建 artcate.js 文件,作为文章分类的路由处理函数模块。

        3.4. 在 router_handler 文件夹中,新建 article.js 文件,作为文章的路由处理函数模块。

4. 使用Navicat在本机MySQL数据库中新建数据库my_db_01

        4.1在数据库中新建表 ev_users ,表结构如下:

        4.2在数据库中新建表 ev_article_cate ,表结构如下:

         4.3在数据库中新建表 ev_articles ,表结构如下:

 5. 在项目根目录中,新建 db 文件夹,用来存放与数据库有关的模块。

        5.1. 在 db 文件夹中,新建 index.js 文件,在此自定义模块中创建数据库的连接对象。

6. 在项目根目录中,新建 schema 文件夹,用来存放与表单数据验证有关的模块。

        6.1. 在 schema 文件夹中,新建 user.js 文件,用户信息验证规则模块。

        6.2. 在 schema 文件夹中,新建 artcate.js 文件,文章分类数据验证模块。

        6.3. 在 schema 文件夹中,新建 article.js 文件,文章数据验证模块。

node.js取参四种方法req.body,req.params,req.param,req.body - 你怕黑暗么 - 博客园参考:https://my.oschina.net/u/2519530/blog/535309 获取请求很中的参数是每个web后台处理的必经之路,nodejs的 express框架 https://www.cnblogs.com/jkingdom/p/8065202.html

7. 总结:创建完成后的项目目录结构

二. 代码编写


1. 项目根目录中app.js入口文件的代码

// 导入 express 模块
const express = require('express'); 
// 创建 express 的服务器实例
const app = express();
// 导入 cors 中间件
const cors = require('cors');
// 将 cors 注册为全局中间件
app.use(cors());
// 配置解析 application/x-www-form-urlencoded 格式的表单数据的中间件
app.use(express.urlencoded({ extended: false }));
// 导入定义验证规则的包
const joi = require('joi');
// 导入配置文件
const config = require('./config');
// 导入解析 token 的中间件
const expressJWT = require('express-jwt');

// 托管静态资源文件
app.use('/uploads', express.static('./uploads'));

// 响应数据的全局中间件
// 注意:一定要在路由之前,封装res.cc()函数
app.use(function (req, res, next) {
    // 为 res 对象挂载一个 res.cc() 函数
    // status = 0 为成功; status = 1 为失败; 默认将 status 的值设置为 1,方便处理失败的情况
    res.cc = function (err, status = 1) {
      res.send({
        // 状态
        status,
        // 状态描述,判断 err 是 错误对象 还是 字符串
        message: err instanceof Error ? err.message : err,
      })
    }
    next();
})

// 在注册路由之前,配置解析 Token 的中间件
// 使用 .unless({ path: [/^\/api\//] }) 指定哪些接口不需要进行 Token 的身份认证
app.use(expressJWT({ secret: config.jwtSecretKey }).unless({ path: [/^\/api\//] 
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值