(Node+Express+vue)常量抽取

好久没来更新了,最近在用node整项目。。。

定义一个名为constant.js文件,用来存放项目的常量信息。

javascript 复制代码
// 定义一个常量对象
const obj = {
  // 默认请求成功
  DEFAULT_SUCCESS: {
    code: 1001,
    msg: ''
  },
  // 默认请求失败
  DEFAULT_ERROR: {
    code: 1002,
    msg: '系统错误'
  },
  // 定义错误返回-Token验证失败
  TOKEN_ERROR: {
    code: 1003,
    msg: 'Token验证失败'
  },
  // 定义错误返回-用户名或密码错误
  LOGIN_ERROR: {
    code: 1004,
    msg: '用户名或密码错误'
  },
};

// 导出对象
module.exports = obj;

常量信息使用示例

javascript 复制代码
// 引入公共方法
const Common = require ('./common');
// 引入常量
const Constant = require ('../constant/constant');

// 配置对象
let exportObj = {
  list
};
// 导出对象
module.exports = exportObj;

// 获取数据列表
function list (req, res) {
  // 定义一个返回对象
  const resObj = Common.clone (Constant.DEFAULT_SUCCESS);
  // 定义一个async任务
  let tasks = {
    // 校验参数方法
    checkParams: (cb) => {
      // TODO: 校验参数
      Common.checkParams (req.query, ['page', 'rows'], cb);
    },
    query: ['checkParams', (results, cb) => {
      // 设置分页信息
      let offset = req.query.rows * (req.query.page - 1) || 0;
      let limit = parseInt (req.query.rows) || 20;
      //TODO: 存放查询条件信息
      let whereCondition = {};
      Model
        .findAndCountAll ({
          where: whereCondition,
          offset: offset,
          limit: limit,
          order: [['time', 'DESC']],
        })
        .then (function (result) {
          let list = [];
          result.rows.forEach ((v, i) => {
            let obj = {
              //TODO: 封装返回数据信息
              id: v.id
            };
            list.push (obj);
          });
          //TODO: 封装列表数据
          resObj.data = {
            list,
            count: result.count
          };
          //TODO: 继续后续操作
          cb (null);
        })
        .catch (function (err) {
          //TODO: 错误处理
          console.log (err);
          // 传递错误信息到async最终方法
          cb (Constant.DEFAULT_ERROR);
        });

    }]
  };
  // 执行公共方法中的autoFn方法,返回数据
  Common.autoFn (tasks, res, resObj)

}
相关推荐
Brown.alexis26 分钟前
es6知识点5-自备使用
前端·javascript·es6
杨利杰YJlio1 小时前
KB5121003更新详解:安全启动证书、AI组件、资源管理器与安装验证
前端·javascript·后端
紫菜猫一只1 小时前
Vue 3 与 React 常用写法对比
前端
jinggongszh1 小时前
使用AI协同开发产品条码规则功能——从“理解方案、原型、接口文档”到“落地真实前端代码”
前端·人工智能·mes系统·mes工程架构
渔夫正在掘金1 小时前
Cordis 中文教程:渐进式构建插件化应用
前端·node.js·ai编程
打呵欠的猫1 小时前
前端团队 3 个月 AI 实践复盘:哪些场景 ROI 最高,哪些是伪需求
前端·ai编程
gyx_这个杀手不太冷静2 小时前
高级前端开发职业规划(2026—2035)
前端·面试·agent
程序员黑豆2 小时前
Java中的null与NullPointerException完全指南:安全处理、实战排查与面试题
java·前端·ai编程
编程快车2 小时前
用 Phaser 4 造一个空间解谜游戏:纯函数棋盘引擎、透明画布分层与轻量双语
前端·程序员
lemon_yyds2 小时前
uVIew2 弹框滚动穿透问题-[uu-popup ]组件
vue.js