/ / Co zastępuje przekazywanie tablicy do pierwszego argumentu app.get ()? - javascript, node.js, express

Jaki jest zamiennik przekazywania tablicy do pierwszego argumentu app.get ()? - javascript, node.js, express

W przeszłości mogłeś zrobić coś takiego:

app.get(["/", "/dashboard"], (req, res, next) => { ... });

aby mieć wiele tras za pomocą tego samego modułu obsługi trasy.

Kilka odpowiedzi przepełnienia stosu wskazuje, że to zachowanie jest przestarzałe i nie należy go już używać.

Oprócz brzydkiego wyrażenia regularnego lub półhakowania, takiego jak umieszczenie funkcji w zmiennej i przekazanie jej do 2 odrębnych app.get() wywołań, czy istnieje elegancka alternatywa dla przekazania tablicy jako pierwszego argumentu?

Odpowiedzi:

1 dla odpowiedzi № 1

Zrób coś takiego:

var express = require("express");
var app = express();
var originalExpressGet = app.get;

app.get = (function() {
var expressApp = app;
function turnToArray(args){
var array = [];
for(var i = 0; i < args.length; i++){
array.push(args[i]);
}
return array;
}
return function(routes, callback) {
var args = turnToArray(arguments);
if(args.length <= 1){
return originalExpressGet.apply(app, arguments);
}

if(!Array.isArray(routes)){
routes = [routes];
}
args.shift();
routes.forEach(function(route){
originalExpressGet.apply(app, [route].concat(args));
});
}
return app;
}());

W ten sposób nadal używasz app.get express, ale pozwala ci to używać [] do wielu tras. Na przykład działa to:

app.get(["/", "/same"], function(req, res){
res.send(true);
});

I tak robi to:

app.get("/another route", function(req, res){
res.send(true);
});