Javascript Express4错误中间件序列
accros执行了一系列代码,我发现这是不寻常的,代码如下: server.js 动作\u单个\u PVC.js 如果您以前从未见过这种结构,这里是asyncMW:Javascript Express4错误中间件序列,javascript,node.js,express,express-4,Javascript,Node.js,Express,Express 4,accros执行了一系列代码,我发现这是不寻常的,代码如下: server.js 动作\u单个\u PVC.js 如果您以前从未见过这种结构,这里是asyncMW: const asyncMiddleware = fn => (req, res, next) => { Promise.resolve(fn(req, res, next)) .catch(next); }; module.exports = asyncMiddleware; 我不明白
const asyncMiddleware = fn =>
(req, res, next) => {
Promise.resolve(fn(req, res, next))
.catch(next);
};
module.exports = asyncMiddleware;
我不明白的是,当抛出一个错误时,我在这里用抛出新错误复制了它;执行server.js文件中的错误处理中间件。我希望Actions_single_PVC.js的错误处理中间件能够得到执行
问题:
为什么执行server.js中的错误middlware而不是Actions\u single\u PVC.js中的错误middlware?这是因为以下代码仅将中间件应用于具有基本路径匹配Actions\u single\u PVC的请求 而下面的代码是将中间件应用于所有全局请求
app.use((err, req, res, next) => {
console.log('invalid token');
});
如果你点击url/Actions\u single\u PVC,那么Actions\u single\u PVC中的中间件就会被点击 这是因为以下代码仅将中间件应用于具有基本路径匹配操作的请求 而下面的代码是将中间件应用于所有全局请求
app.use((err, req, res, next) => {
console.log('invalid token');
});
如果你点击url/Actions\u single\u PVC,那么Actions\u single\u PVC中的中间件就会被点击
app.use('/Actions_single_PVC', Actions_Single_PVC);
app.use((err, req, res, next) => {
console.log('invalid token');
});