Quando provo a dichiarare il sotto, la pagina indice funziona, ma tutte le altre pagine sono tutte 404. So che non è un problema con il mio file links.js, poiché quando codifico l'output del ciclo for, i link tutti lavoro. I console.ha registrato l'oggetto router e mostra le informazioni nello stack. Ma quando provo ad aprire uno qualsiasi dei link, essi 404 e nulla viene registrato nella console.I percorsi in Express possono essere dichiarati con un loop?
Non è possibile dichiarare percorsi utilizzando un ciclo for? Il codice è copiato di seguito.
var express = require('express');
var router = express.Router();
var config = require('../models/config.js');
var links = require('../models/links.js');
// homepage
router.get('/', function(req, res, next) {
res.render('index', { title: config.title });
});
for (var i = 0; i < links.length; i++) {
router.get(links[i].regex, function(req, res, next) {
console.log("trying to open " + links[i].url);
res.render(links[i].url, { title: links[i].title, link: links[i] });
});
}
module.exports = router;
'foreach()' e 'un anello for' sono diversi come ho notato nella mia risposta. Se fossero stati chiamati i gestori del percorso, vedresti la differenza nell'output. Ad ogni modo, se i gestori del percorso non vengono chiamati, dovresti (doppio) controllare i valori di '.regex'. – mscdex