多人博客管理系统(完整代码和解析请下载资源)

本文介绍如何使用npm初始化Node.js项目,安装并配置常用模块如body-parser和Joi进行用户验证,以及如何处理数据分页和文件上传。探讨了前端与后端开发的关键技术。

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

案例初始化准备

在这里插入图片描述
在这里插入图片描述
npm init -y生成package.json文件。
在这里插入图片描述
node.js安装node modules
node_modules是安装node后用来存放用包管理工具下载安装的包的文件夹。比如webpack、gulp、grunt这些工具。在node.js中模块与文件是一一对应的,也就是说一个node.js文件就是一个模块。

模板中外链的相对路径,相对的是地址栏中的请求路径的。请求路径可能会变来变去,不安全,模板文件中用绝对路径改成相对路径,用 / 即可
解决方式是,把相对路径改成绝对路径

**{{include ‘./common/header.art’}}**调用模板可以用相对路径,因为是模板引擎解析的,上部分讲的外链必须用绝对路径,是因为是浏览器解析的。

项目功能实现

  1. 登陆
    在这里插入图片描述
    在这里插入图片描述
    要获取post从客户端请求的参数用第三方模块,body-parser。

{{extend ‘./common/layout.art’}}
art-template可以方便服务器展示页面给客户端的东西
属于子模版
D

新增用户功能分析

在这里插入图片描述
Joi
JavaScript对象的规则描述语言和验证器。
在这里插入图片描述
在这里插入图片描述
SyntaxError: Unexpected identifer错误
在这里插入图片描述

//1  引入joi模块
const Joi = require('joi');

//2  定义对象的验证规则
const schema = {
	//required方法的作用为是对响应的属性变成必填项
	username: Joi.string().min(2).max(5).required().error(new Error('username属性没有通过验证')),
	birth: Joi.number().min(1900).max(2020).error(new Error('birth没有通过验证'))
};



async function run () {
	//异步函数抛出异常的方法为try catch
	try {
	//3  实施验证 这个方法返回的是一个promiss对象
	await Joi.validate({username: 'ad', birth: 1800}, schema);
	} catch (ex) {
		console.log(ex.message);
		return;
	}
	console.log('验证通过');
	
}
run();

原文输出

在模板引擎中,如果要使用原文输出,只需在模板中数据的前面加上 @ 符号即可

<td>{{@$value._id}}</td>

数据分页

当数据库中的世俗据非常多时,数据需要分批次显示,这时就需要用到数据分页功能。

分页功能核心要素:
在这里插入图片描述
总页数:Math.ceil(总数据条数/每页显示数据条数)

分页功能用到的两个查询方法:
在这里插入图片描述
数据开始的位置=(当前页-1)*每页显示的数据条数

注意:分页操作下一页报错,因为减号会自动将page转换为数值,所以改成以下语法:

用户信息修改

在这里插入图片描述

用户信息删除

在这里插入图片描述
bodyPaser只能接收普通表单传递过来的参数,表单里面的上传文件需要转换成二进制,bodyPaser不能接收二进制参数。
这时需要用到formidable

formidable第三方模板

在这里插入图片描述

文件读取 FileReader

在这里插入图片描述
javascript中异步方法不能通过返回值的方式获取结果,需要监听事件

数据分页mongoose-sex-page

在这里插入图片描述
在这里插入图片描述

文章评论

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值