gpt4 book ai didi

javascript - 如何在路由中正确使用 next() (node.js)

转载 作者:太空宇宙 更新时间:2023-11-04 02:29:42 25 4
gpt4 key购买 nike

var s_bookingController = require('s/controllers);

app.get('/dashboard/:page/:param', s_bookingController.index)
app.get('/dashboard/show/:id', s_bookingController.show);

Controller :

exports.index = function(req, res, next) {
var page = parseInt(req.param("id"));

data = {};
data.page = page;
data.nextPage = page + 1;
data.prevPage = page - 1;

MyModel.find().sort('brand').skip((page-1)*11).limit(11).exec(function(err, result) {
res.render('index', {
data: data,
booking: result,
});
});
};

还有

exports.show = function(req, res, next) {
var id = req.param("id");

res.send(id);
};

我正在使用此 Controller ,但 exports.index 的代码有问题,因为它卡在代码中。

如果我将路线更改为:

app.get('/dashboard/:page', s_bookingController.index)

(请注意,我去掉了传递的第二个参数)

该节目可以运行,但如果我使用第二个参数,该节目将无法运行,它将卡在索引页中。

这是为什么呢?我想知道是否需要使用 next();

最佳答案

扩展我的评论:

您应该具有以下路线顺序:

app.get('/dashboard/show/:id', s_bookingController.show);
app.get('/dashboard/:page/:param', s_bookingController.index);

快速路由要求将更具体的路由放置在更一般的路由之上。

在这种情况下,/dashboard/show/:id 更加具体,因为 /dashboard/:page/:param 覆盖了它,因此 /dashboard/show 由它处理。处理该路由后,不会执行下一个路由。

关于javascript - 如何在路由中正确使用 next() (node.js),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27909144/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com