javascript - 初学nodejs,请问带参数的路由怎么处理防止没参数访问?
迷茫
迷茫 2017-04-11 11:39:19
0
2
273
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

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回覆(2)
阿神
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', {
        ...
    }); 
});
迷茫

推荐使用这样的路由

/**
 * 访问:/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的问题

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!