2016-05-03 14 views
0

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?

Antwort