Есть ли способ получить или удалить промежуточное программное обеспечение в connect
или express
, которое вы уже определили в том же экземпляре? Я заметил, что под koa
вы можете это сделать, но мы не собираемся использовать koa
, но потому, что он такой новый, поэтому я пытаюсь сделать то же самое в express
. Я также заметил, что это возможно с connect
, с несколько более сложным выходом, но connect
не имеет всех функций, которые я хочу, даже с промежуточным программным обеспечением.Доступ к ранее заданному промежуточному программному обеспечению
var express = require('express');
var connect = require('connect');
var koa = require('koa');
var server1 = express();
var server2 = connect();
var server3 = koa();
server1.use(function express(req, res, next) {
console.log('Hello from express!');
});
server2.use(function connect(req, res, next) {
console.log('Hello from connect!');
});
server3.use(function* koa(next) {
console.log('Hello from koa!');
});
console.log(server1.middleware);
// logs 'undefined'
console.log(server2.middleware);
// logs 'undefined'
console.log(server2.stack);
logs [ { route: '', handle: [Function: connect] } ]
console.log(server3.middleware);
// logs [ [Function: koa] ]
koa
Docs «s сказать, что она добавила немного сахара к его промежуточному слою, но никогда явно упоминает никакого сахара, и, в частности, не говоря уже это поведение.
Возможно ли это в express
? Если с ванильной версией это невозможно, как трудно было бы реализовать? Я хотел бы избежать изменения самой библиотеки. Кроме того, каковы недостатки для этого, в любой из трех библиотек?
EDIT:
Мой случай использования является то, что я в основном реинжиниринг gulp-webserver
, с некоторыми улучшениями, как тот плагин, и все другие подобные ему, находятся в черном списке. gulp
- это бегун задачи, который имеет концепцию «файловых объектов», и можно получить доступ к их содержимому и пути, поэтому я в основном хочу, чтобы каждый файл статически ставился, когда пользователь переходит к соответствующему URL-адресу в браузере. Проблема в том, что я должен убедиться, что пользователь получает новый файл, а не старую версию. Если я просто добавлю app.use
каждый раз, сервер увидит файл, поскольку он изначально, и никогда не попадает в промежуточное ПО с новой версией.
Я не хочу перезапускать сервер при каждом изменении файла, хотя я буду, если не найду лучшего способа, поэтому мне кажется, что мне нужно либо модифицировать исходное промежуточное ПО на лету (не очень хорошая идея) , удалите его или добавьте его в начало, а не в конец. В любом случае, я сначала должен знать, где он «живет».
Я добавил кейс для использования. По общему признанию, это сложный прецедент, поэтому я не могу делать то, что хочу. Мне не нужно менять какое-либо промежуточное ПО, хотя это тоже может работать; Мне действительно нужно удалить или удалить его. – trysis