5
次のように宣言しようとすると、インデックスページは機能しますが、他のページはすべて404となります。リンクの出力をハードコードすると、links.jsファイルに問題はありません作業。私はconsole.loggedルータオブジェクトとスタックの情報を表示します。しかし、私がリンクのいずれかを開こうとすると、404になり、何もコンソールに記録されません。Expressで経路をループで宣言できますか?
forループを使用してルートを宣言することはできませんか?コードが下にコピーされます。
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の()'と 'for'ループは異なっています。ルートハンドラが呼び出された場合、出力の違いが表示されます。とにかく、あなたのルートハンドラが呼び出されないならば、 '.regex'の値を(倍)チェックするべきです。 – mscdex