初学nodejs,请问带参数的路由怎么处理防止没参数访问?

router.get("/:page",function(req,res){
    
});
这段代码假如 这样访问http://127.0.0.1:3000/admin/list/1

万一用户直接http://127.0.0.1:3000/admin/list 不带参数
导致“Failed to lookup view "error" in views directory "e:\nodejs\myproject\views"”找不到模板

或者http://127.0.0.1:3000/admin/list/0  带上0  这样怎么处理啊?

怎么让它以上两种行为都自动跳转到http://127.0.0.1:3000/admin/list/1

阅读 3.5k
2 个回答

推荐使用这样的路由

/**
 * 访问:/admin/list
 * 访问:/admin/list?page
 * 访问:/admin/list?page=0
 * 访问:/admin/list?page=a
 * 访问:/admin/list?page="1"
 */
router.get("/list",function(req,res){
    var page = req.query.page;
    page = isNaN(page) || page == 0 ? 1 : page;
    //渲染模板
});

这样就同时解决了/list、/list/0、/list/1的问题

router.get("/",function(req,res){
    //这里默认第一页
    res.render('list.html', {
        ...
    }); 
});

router.get("/:page",function(req,res){
    var page = req.params.page;
    //上面的page做个基本的判断就好了
    res.render('list.html', {
        ...
    }); 
});
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题