Sto provando ad estendere il comportamento app.get ma sembra che dopo averlo fatto, l'app abbia perso alcune configurazioni prima di estenderla.Estendere il metodo express app.get in un'app di nodejs
Nel seguente frammento del /campione e /es/campione uscita sono vuoti e l'output previsto dovrebbe essere 'valore'
sto facendo qualcosa di sbagliato?
var app = require('express')();
app.set('myprop', 'value');
var _get = app['get'];
app['get'] = function (route, middleware, callback) {
_get.call(app, route, middleware, callback);
// For instance: I generate a new route for 'es' language.
_get.call(app, '/es' + route, middleware, callback);
};
app.get('/sample', function(req, res){
res.send(app.get('myprop'));
});
app.use(app.router);
app.listen(3000);
UPDATE
dispiace, io risponderò io stesso ...
ho perso la seguente prima riga del metodo di estensione :)
if (middleware === undefined && callback === undefined) return _get.call(app, route);
ora funziona come un fascino!
app['get'] = function (route, middleware, callback) {
if (middleware === undefined && callback === undefined) return _get.call(app, route);
_get.call(app, route, middleware, callback);
// For instance: I generate a new route for 'es' language.
_get.call(app, '/es' + route, middleware, callback);
};
Grazie Vadim! Ho capito dopo aver scritto la domanda :) Ho anche aggiornato la mia domanda con la soluzione ma la tua è molto meglio. – user1796747
appena fuori interesse ... qual è questa linea tutto su 'app.listen (3131); vadim @ zapp: ~/workspace/test $ cat./Ex.js' ?? – Val
@Val, questa è la duplicazione copia/incolla. Fisso. Grazie. –