node_modules/@nuxtjs/redirect-module/lib/module.js:4:35
Object.onDecode
async function redirectModule (moduleOptions) {
const defaults = {
rules: [],
onDecode: (req, res, next) => decodeURI(req.url),
onDecodeError: (error, req, res, next) => next(error),
statusCode: 302
}
const options = {
node_modules/@nuxtjs/redirect-module/lib/middleware.js:7:32
redirectRoute
module.exports = function (options) {
return async function redirectRoute (req, res, next) {
let decodedBaseUrl
try {
decodedBaseUrl = options.onDecode(req, res, next)
} catch (error) {
return options.onDecodeError(error, req, res, next)
}
const foundRule = options.rules.find(o => o.from.test(decodedBaseUrl))
node_modules/connect/index.js:239:7
call
// error-handling middleware
handle(err, req, res, next);
return;
} else if (!hasError && arity < 4) {
// request-handling middleware
handle(req, res, next);
return;
}
} catch (e) {
// replace the error
error = e;
node_modules/connect/index.js:183:5
next
slashAdded = true;
}
}
// call the layer handle
call(layer.handle, route, err, req, res, next);
}
next();
};
node_modules/connect/index.js:161:14
next
var path = parseUrl(req).pathname || '/';
var route = layer.route;
// skip this layer if the route doesn't match
if (path.toLowerCase().substr(0, route.length) !== route.toLowerCase()) {
return next(err);
}
// skip if route match does not border "/", ".", or end
var c = path.length > route.length && path[route.length];
if (c && c !== '/' && c !== '.') {
node_modules/serve-static/index.js:121:7
SendStream.error
if (forwardError || !(err.statusCode < 500)) {
next(err)
return
}
next()
})
// pipe
stream.pipe(res)
}
events.js:400:28
SendStream.emit
domain.js:475:12
SendStream.emit
node_modules/send/index.js:270:17
SendStream.error
*/
SendStream.prototype.error = function error (status, err) {
// emit if listeners instead of responding
if (hasListeners(this, 'error')) {
return this.emit('error', createError(status, err, {
expose: false
}))
}
var res = this.res