思路
const wrap = fn => (...args) => fn(...args).catch(args[2])
const Layer = require('express/lib/router/layer')
Object.defineProperty(Layer.prototype, 'handle', {
enumerable: true,
get() {
return this.__handle;
},
set(fn) {
if (fn.length === 4) {
this.__handle = fn;
} else {
this.__handle = (req, res, next) =>
Promise.resolve(fn(req, res, next)).catch(next);
}
},
});
转载请注明原文地址:https://ipadbbs.8miu.com/read-18198.html