如何改进路由 [Node.js] 中的 if 语句
How improve my if statements in a route [Node.js]
app.get('/dashboard/:page/:param',function(req, res) {
var page = parseInt(req.param("page"));
var param = req.param('param');
data = {};
data.page = page;
if (!param) {
data.nextPage = page + 1;
data.prevPage = page - 1;
MyModel.find().sort('brand').skip((page-1)*11).limit(11).exec(function(err, result) {
res.render('index1', {
data: data,
result: result,
});
});
}
else {
data.nextPage = page + 1 + '/' + encodeURIComponent(param);
data.prevPage = page - 1 + '/' + encodeURIComponent(param);
MyModel.find({
_id: param
}).sort('brand').skip((page-1)*11).limit(11).exec(function(err, result) {
res.render('index2', {
data: data,
result: result,
});
});
}
});
我有这条路线,我正在使用它来渲染两个页面。
如果页面有参数,我想在我的数据库中找到 id 并渲染索引 2,如果没有我只想渲染索引。
我的问题很简单:这是解决这个问题的好办法?或者我应该把 else 移到另一条路线??
我可以改进一下让它更干吗???
这对你来说看起来更干净吗?
app.get('/dashboard/:page/:param', function (req, res) {
var page = parseInt(req.param("page"));
var param = req.param('param');
data = {
page: page,
nextPage: page + 1 + param ? '/' + encodeURIComponent(param) : null,
prevPage: page - 1 + param ? '/' + encodeURIComponent(param) : null
};
MyModel.find(param ? {_id: param} : undefined)
.sort('brand')
.skip((page - 1) * 11)
.limit(11)
.exec(function (err, result) {
res.render(param ? 'index2' : 'index1', {
data: data,
result: result
});
});
});
app.get('/dashboard/:page/:param',function(req, res) {
var page = parseInt(req.param("page"));
var param = req.param('param');
data = {};
data.page = page;
if (!param) {
data.nextPage = page + 1;
data.prevPage = page - 1;
MyModel.find().sort('brand').skip((page-1)*11).limit(11).exec(function(err, result) {
res.render('index1', {
data: data,
result: result,
});
});
}
else {
data.nextPage = page + 1 + '/' + encodeURIComponent(param);
data.prevPage = page - 1 + '/' + encodeURIComponent(param);
MyModel.find({
_id: param
}).sort('brand').skip((page-1)*11).limit(11).exec(function(err, result) {
res.render('index2', {
data: data,
result: result,
});
});
}
});
我有这条路线,我正在使用它来渲染两个页面。
如果页面有参数,我想在我的数据库中找到 id 并渲染索引 2,如果没有我只想渲染索引。
我的问题很简单:这是解决这个问题的好办法?或者我应该把 else 移到另一条路线??
我可以改进一下让它更干吗???
这对你来说看起来更干净吗?
app.get('/dashboard/:page/:param', function (req, res) {
var page = parseInt(req.param("page"));
var param = req.param('param');
data = {
page: page,
nextPage: page + 1 + param ? '/' + encodeURIComponent(param) : null,
prevPage: page - 1 + param ? '/' + encodeURIComponent(param) : null
};
MyModel.find(param ? {_id: param} : undefined)
.sort('brand')
.skip((page - 1) * 11)
.limit(11)
.exec(function (err, result) {
res.render(param ? 'index2' : 'index1', {
data: data,
result: result
});
});
});