Unten ist der einfache Koa-Server, den ich eingerichtet habe. Jedes Mal, wenn eine ungültige GET-Anforderung ausgeführt wird, "hängt" der Server jedoch "", wie in der Registerkarte "Netzwerkressourcen" in Chrome angegeben würde ausstehende.Wie behandelt man ungültige GET Anfrage in Koa 2?
server.js
const app = new Koa();
const apiUrl = `http://${KOA_HOST}:${API_PORT}`;
const proxy = httpProxy.createProxyServer({
target: apiUrl,
});
const router = new Router();
app.use(errorHandler);
app.use(compress({
flush: zlib.Z_SYNC_FLUSH,
}));
app.use(responseTime());
app.use(logger());
app.use(helmet());
app.use(bodyParser());
router.get('/bundle/*', serveStatic(PUBLIC_PATH));
router.get('*', render);
app.use(router.routes());
const server = http.createServer((req, res) => {
const path = url.parse(req.url).pathname;
if (/^\/api.*/.test(path)) {
return proxy.web(req, res, { target: apiUrl });
}
app.callback()(req, res); // need to understand this more
});
server.listen(KOA_PORT, KOA_HOST, err => {
if (err) {
console.log(chalk.red(err));
} else {
const url = `http://${KOA_HOST}:${KOA_PORT}`;
console.log(`${chalk.yellow(`backend server`)} listening on ${chalk.yellow(url)}`);
}
});
Fehler Middleware
export default async function errorHandler(ctx, next) {
try {
await next();
} catch (err) {
console.log(pe.render(err));
ctx.redirect('/oops');
}
}
Wie kann ich anmutig alle ungültigen GET-Anfrage behandeln?, Einschließlich ungültige statische Dateianforderungen?