node.js中的简单路由
我不知道我的路线有什么问题。如果我用app.js文件定义url模式回调,为什么找不到资源node.js中的简单路由,node.js,express,Node.js,Express,我不知道我的路线有什么问题。如果我用app.js文件定义url模式回调,为什么找不到资源 app.get('/myroute', function(req, res) { res.send('Hello /myroute from app.js') }); 如果我取消注释下一行: var routes = require('./routes/index'); var users = require('./routes/users'); app.use('/', route
app.get('/myroute', function(req, res) {
res.send('Hello /myroute from app.js')
});
如果我取消注释下一行:
var routes = require('./routes/index');
var users = require('./routes/users');
app.use('/', routes);
app.use('/users', users);
并将我的url模式回调放在./routes/index上,这样就行了
router.get('/myroute', function(req, res) {
res.send('Hello / from /route/index.js');
});
代码中是否包含url模块?因为我看不见
require('url');
在您提供的代码中
我刚刚创建了一个新的node.js项目,并包含了url模块。它似乎工作良好,我没有看到你提到的问题
如果这不能解决问题,也许您可以提供更具体的错误代码?我明白了。它与。因此,如果我在没有参数的情况下调用next()
,res.send('Hello/myroute from app.js'),
将被处理
app.use(function(req, res, next) {
var err = new Error('Not Found');
err.status = 404;
next(); // early was next(err)
});
app.get('/myroute', function(req, res) {
res.send('Hello /myroute from app.js')
});
或者,如果将路由错误处理程序置于所有路由之下,效果会更好 在这篇非常有趣的帖子中,你可以找到下一篇: 中间件是由 Express.js路由层在最终请求处理程序之前,以及 因此,位于原始请求和最终意图之间的中间。 路线。我们经常将这些函数称为中间件堆栈,因为 它们总是按照添加的顺序被调用 因此,如果您想处理404错误,则必须:
app.use(function(req, res, next) {
var err = new Error('Not Found');
err.status = 404;
next(err);
});
在所有的路由处理程序之后。是的,我使用了它。只是我没有像我想的那样包括可能不相关的代码。我可能已经找到了答案。
app.use(function(req, res, next) {
var err = new Error('Not Found');
err.status = 404;
next(err);
});