Приложение Mount Koajs поверх Express

От koajs.com:

app.callback()

Возвращает функцию обратного вызова, подходящую для метода http.createServer() для обработки запроса. Вы также можете использовать эту функцию обратного вызова для монтирования своего приложения koa в приложении Connect/Express.

Теперь у меня есть приложение Express, которое уже запускает собственный HTTP-сервер. Как смонтировать приложение koa поверх этого существующего сервера, чтобы он имел один и тот же порт?

Я бы включил приложение koa как Express middlware? Использую ли я еще app.callback() для этого?

2 ответа

expressapp.use(koaapp.callback()) отлично. но помните, что koaapp.callback() не имеет next, поэтому в экспресс-приложение нет пропущенных ошибок или пропускается koaapp после его использования.

лучше оставить их полностью отдельными, поскольку их API несовместимы

var koaapp = koa()
var expressapp = express()
http.createServer(req, res) {
 if (true) koaapp(req, res);
 else expressapp(req, res);
})


Поскольку вам нужен экземпляр сервера для установки промежуточного программного обеспечения на конкретном /prefix, это будет что-то вроде

var http = require('http');
var expressApp = require('express');
var koaApp = require('koa');
// ...
expressApp.use('/prefix', http.createServer(koaApp.callback()));

licensed under cc by-sa 3.0 with attribution.