我正在构建一个简单的应用程序来教自己节点,我遇到了这个问题。
根本没有执行Console.log。你知道为什么吗?
我有404错误,但没有别的。应用程序没有崩溃,我只是无法得到这个观点。
router.get('/charts/top/:exercise', function(req, res, next) {
console.log("exercise: " + req.params.exercise);
res.render("top", {});
});
解决方案:因为这是在charts.js文件中的单独路径文件夹中,所以不应该是/ charts而是/ top /:exercise
答案 0 :(得分:1)
假设您的路由器来自:
var express = require('express');
var router = express.Router();
您需要为服务器导出此模块,以了解这些路由是否已得到处理。以下内容:
module.exports = router;
在所有路线定义下。
现在,您的应用只需要使用要处理的路由调用此文件。
var handler = require('./handler');
-Some code-
app.use('/', handler);
.use将设置路由的主枢轴到您的路由器。它给球带来了它。在这个例子中,来自/的所有内容都将传递给路由器。如果你真的想要清理它,可以将文件中的路由器变量更改为图表,并在应用程序中将其用于以/ chart开头的所有内容
然后在您的图表文件中,您将能够处理/ top /:exercice
您可以使用.use创建多个级别的路由,以设置新的处理点。
另外,我想指出你的函数中不需要“next”,因为你没有回调。
编辑:请记住,如果可以处理2条路线,它将始终是第一个被捕获的路线。这样,声明一些路由后面带有if else逻辑。首先给出更具体的选择。