node 响应结果封装

code_lee3年前node2235

创建 /models/Result.js 文件:

const {
  CODE_ERROR,
  CODE_SUCCESS
} = require('../utils/constant')

class Result {
  constructor(data, msg = '操作成功', options) {
    this.data = null
    if (arguments.length === 0) {
      this.msg = '操作成功'
    } else if (arguments.length === 1) {
      this.msg = data
    } else {
      this.data = data
      this.msg = msg
      if (options) {
        this.options = options
      }
    }
  }

  createResult() {
    if (!this.code) {
      this.code = CODE_SUCCESS
    }
    let base = {
      code: this.code,
      msg: this.msg
    }
    if (this.data) {
      base.data = this.data
    }
    if (this.options) {
      base = { ...base, ...this.options }
    }
    console.log(base)
    return base
  }

  json(res) {
    res.json(this.createResult())
  }

  success(res) {
    this.code = CODE_SUCCESS
    this.json(res)
  }

  fail(res) {
    this.code = CODE_ERROR
    this.json(res)
  }
}

module.exports = Result

我们还需要创建 /utils/constant.js

module.exports = {
  CODE_ERROR: -1,
  CODE_SUCCESS: 0
}

Result 使用了 ES6 的 Class,使用方法如下:

// 调用成功时
new Result().success(res)
new Result('登录成功').success(res)
// 调用成功时,包含参数
new Result({ token }, '登录成功').success(res)
// 调用失败时
new Result('用户名或密码不存在').fail(res)


相关文章

npx 使用

npx 使用

npm 从5.2版开始,增加了 npx 命令。它有很多用处,本文介绍该命令的主要使用场景。Node 自带 npm 模块,所以可以直接使用 npx 命令。万一不能用,就要手动安装一下。$ np...

concurrently--并行执行命令模块

concurrently:同时可执行多个命令1.作用:让“阻塞”的命令可以并发执行,因此而改写package.json中的scripts.2.用法:全局安装:npm install ...

node - mysql

安装安装 mysql 库: npm i -S mysql配置创建 db 目录,新建两个文件:index.js config.jsconfig.js 源码如下:...

Window版本的nvm下载安装以及配置

Window版本的nvm下载安装以及配置

1. nvm下载nvm各版本下载链接:https://github.com/coreybutler/nvm-windows/releases建议下载安装版的,非安装版还需要额外配置环境变量。2. nv...

node.js原生开发服务端项目之使用本地node.js变量存储session信息实现登录

使用session实现登录的思路:1.服务端收到客户端请求,解析请求头获取sessionId。2.如果sessionId不存在,则生成一个唯一的sessionId,生成sessionId的规则可以根据...

vue 学习eslint报错 整理

vue 学习eslint报错 整理

Newline required at end of file but not foundNewline required at end of file but not found 报错翻译:文件末尾...