能否进一步缩短并美化Express框架下Xsolla路由的实现代码?
你之前尝试的写法无法运行是两个核心原因:
- 代码执行到路由注册这一行就会立即实例化
Xsolla,而非请求到达时才执行实例化逻辑 - 没有把路由回调接收的
req、res参数传入Xsolla构造函数
以下是两种可行的简写方案,功能和原代码完全一致:
方案1:无侵入修改(无需调整Xsolla类定义)
用剩余参数简化写法,比原写法更短,逻辑100%等价:
app.post('/xsolla/', (...args) => new Xsolla(...args))
这种写法直接透传所有路由回调参数给Xsolla构造函数,不需要单独声明req、res形参,代码更简洁。
方案2:调整Xsolla类定义,获得更干净的调用方式
在Xsolla类里新增一个静态方法直接返回路由处理函数,原有业务逻辑不用改:
class Xsolla { constructor(req, res) { // 原有构造函数逻辑完全保留 } // 新增静态处理器 static handle = (req, res) => new this(req, res) }
之后路由注册可以直接写为:
app.post('/xsolla/', Xsolla.handle)
这种写法可读性更高,也符合常规的中间件注册风格。
内容的提问来源于stack exchange,提问作者TopoR
相关产品推荐
相关产品推荐

