मैं app.get व्यवहार का विस्तार करने की कोशिश कर रहा हूं लेकिन ऐसा लगता है कि ऐसा करने के बाद, ऐप को कुछ विन्यास को नुकसान पहुंचाता है जो मैंने इसे विस्तारित करने से पहले किया था।एक nodejs ऐप में एक्सप्रेस app.get विधि को विस्तारित करना
निम्नलिखित स्निपेट में /नमूना और /es/नमूना उत्पादन खाली कर रहे हैं और उम्मीद उत्पादन होना चाहिए 'मान'
मैं कुछ गलत कर रहा हूं?
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);
अद्यतन
क्षमा करें, मैं अपने आप को जवाब देंगे ...
मैं विस्तार विधि :)
if (middleware === undefined && callback === undefined) return _get.call(app, route);
अब यह की तरह काम करता
में निम्नलिखित पहली पंक्ति याद किया जादू!
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);
};
धन्यवाद वादिम! मैंने सवाल लिखने के बाद पता लगाया :) मैंने समाधान के साथ अपना प्रश्न भी अपडेट किया है लेकिन आपका बहुत बेहतर है। – user1796747
बस ब्याज से बाहर ... इस लाइन को 'app.listen (3131) के बारे में क्या है; vadim @ zapp: ~/workspace/test $ cat।/Ex.js' ?? – Val
@ वैल, यह कॉपी/पेस्ट डुप्लिकेशंस है। फिक्स्ड। धन्यवाद। –