You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
vue-shop-admin-work/modules/resextra.js

29 lines
2.1 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

// 添加统一的返回结果方法
// 此代码将一个函数作为模块的导出内容,该函数很可能作为中间件在 Express 等 Node.js 的 Web 框架中使用,
// 目的是为响应对象res添加一个自定义的 `sendResult` 方法,用于统一格式化返回给客户端的结果数据。
module.exports = function (req, res, next) {
// 为响应对象res添加 `sendResult` 方法,用于按照特定格式向客户端返回结果数据,
// 该方法接收要返回的数据data、状态码code以及提示消息message作为参数。
res.sendResult = function (data, code, message) {
// 获取请求对象req中查询参数query里名为 `fmt` 的参数值,若不存在则默认为 "rest"
// 这个参数用于指定返回结果的格式,这里根据不同的值可以实现不同的返回格式逻辑(目前仅实现了 "rest" 格式)。
var fmt = req.query.fmt? req.query.fmt : "rest";
// 判断返回结果的格式是否为 "rest",如果是,则按照相应的 JSON 格式进行数据组装并返回给客户端。
if (fmt == "rest") {
res.json(
{
// 将传入的要返回的数据data放置在 "data" 字段下。
"data": data,
"meta": {
// 将传入的提示消息message放置在 "meta" 字段下的 "msg" 子字段中,用于告知客户端相关操作的提示信息。
"msg": message,
// 将传入的状态码code放置在 "meta" 字段下的 "status" 子字段中,用于告知客户端操作的状态,比如 200 表示成功400 表示客户端错误等。
"status": code
}
});
}
};
// 调用 `next` 函数,将请求传递给下一个中间件继续处理,遵循 Express 等框架中间件的执行顺序和规范,
// 保证整个请求处理流程能够继续进行下去。
next();
}