简单封装返回实体类

controller实现类返回RespBean实体类就可以,包括状态码,返回信息和返回数据!如果有需求可以后边再添加方法!

package com.ds.entity;


/*
* 公共返回对象
* */
public class RespBean {

    private long code;
    private String message;
    private Object obj;

    public RespBean() {
    }

    public RespBean(long code, String message, Object obj) {
        this.code = code;
        this.message = message;
        this.obj = obj;
    }

    public long getCode() {
        return code;
    }

    public void setCode(long code) {
        this.code = code;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    public Object getObj() {
        return obj;
    }

    public void setObj(Object obj) {
        this.obj = obj;
    }

    @Override
    public String toString() {
        return "RespBean{" +
                "code=" + code +
                ", message='" + message + '\'' +
                ", obj=" + obj +
                '}';
    }

    /*
    * 成功返回结果
    * */
    public static RespBean sucess(String message){
        return new RespBean(200,message,null);
    }
    /*
     * 成功返回结果
     * */
    public static RespBean sucess(String message,Object obj){
        return new RespBean(200,message,obj);
    }

    /*
     * 失败返回结果
     * */
    public static RespBean error(String message){
        return new RespBean(500,message,null);
    }
    /*
     * 失败返回结果
     * */
    public static RespBean error(String message,Object obj){
        return new RespBean(500,message,obj);
    }
}
### 封装实体类在 Express.js 中的最佳实践 在 Express.js 中封装实体类是一种良好的编程习惯,可以提高代码的可维护性和重用性。以下是基于提供的引用内容以及常见的开发经验来说明如何在 Express.js 中封装实体类。 #### 1. 实体类的作用 实体类通常用于表示数据库中的模型对象,或者作为业务逻辑的数据载体。通过定义实体类,可以使数据结构更加清晰,并提供方法操作这些数据[^3]。 #### 2. 定义实体类 以下是一个简单的 `User` 实体类示例: ```javascript class User { constructor(id, name, email) { this.id = id; this.name = name; this.email = email; } toJson() { return { id: this.id, name: this.name, email: this.email }; } } module.exports = User; ``` 此代码片段展示了如何创建一个基本的 `User` 类,并提供了将其转换为 JSON 的方法 `toJson()`。 #### 3. 结合服务层使用实体类 为了更好地遵循 MVC 架构,在控制器和服务之间传递数据时可以利用实体类。例如,可以在 `userService.js` 中实例化并返回 `User` 对象。 ```javascript const User = require('../model/user'); function getUserById(userId) { // 假设这里有一个查询数据库的操作 const mockUserData = { id: userId, name: 'John Doe', email: 'john@example.com' }; return new User(mockUserData.id, mockUserData.name, mockUserData.email); } module.exports = { getUserById }; ``` 在此例子中,`getUserById` 方法会返回一个 `User` 实体对象而非原始数据。 #### 4. 控制器调用服务层获取实体 当请求到达路由时,可以通过服务层的方法获得已经封装好的实体对象,从而减少重复劳动和错误风险。 ```javascript const express = require('express'); const router = express.Router(); const userService = require('../service/userService'); router.get('/users/:id', async (req, res) => { try { const user = await userService.getUserById(req.params.id); if (!user) { return res.status(404).json({ message: 'User not found.' }); } res.json(user.toJson()); } catch (error) { console.error(error); res.status(500).json({ message: 'Internal server error.' }); } }); module.exports = router; ``` 上述代码展示了一个典型的 RESTful API 路由设计方式,其中包含了对异常情况下的响应处理机制[^5]。 #### 5. 数据验证与扩展功能 如果需要增加更多的属性或行为到实体上,则只需修改对应的类即可完成改动而无需调整其他部分。比如加入密码校验等功能[^1]: ```javascript validatePassword(password) { // 这里假设存在加密后的密码字段 storedHashedPassword return bcrypt.compareSync(password, this.storedHashedPassword); } ``` 注意引入必要的库如 `bcrypt` 来实现安全比较算法[^2]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值