express中我已经写了 app.get("/")为什么还会走 app.get("/:album")

express中我已经写了 app.get("/")为什么还会走 app.get("/:albumName
clipboard.png
")
我只是访问了127.0.0.1:8888
上图是报错
app.js中写了

var express=require("express")
var app=express()

var router=require("./router/router.js")
app.set("view engine","ejs")

app.use(express.static("./public"));
app.use(express.static("./uploads"));
app.get("/",router.showIndex);

app.get("/:albumName",router.showalbum);

app.get("/up",router.showup)

app.listen(8888)

router.js写了

var fs=require("fs")
var ejs=require("ejs")
var formidable=require('formidable');
var url=require("url")
var path=require("path")
var sd = require("silly-datetime");
exports.showIndex=function(req,res){
    console.log(req.url)
    
    fs.readdir("./uploads",function(err,files){
        console.log(files)
        if(err){
            res.send("没有找到uploads文件")
        }
        res.render("index",{
            albums:files
        })
        res.end()
    })
};
exports.showup=function(req,res){
    res.render("up",{
        albums:[]
    })
};
exports.showalbum=function(req,res){
    var albumName = req.params.albumName;
     var allAlbums = [];
    fs.readdir("./uploads/"+albumName,function(err,files){
        if(err){
            res.send("没有这个文件夹")
        }
        (function iterator(i){
            if(req.url==undefined){
                    return
            }
            if(i==files.length){

                res.render("album",{
                    albumname:albumName,
                    images:allAlbums
                })
                return
            }
            fs.stat("./uploads/"+albumName+'/'+files[i],function(err,stats){
                if(err){
                    res.send("找不到文件")
                }
                if(stats.isFile()){
                    allAlbums.push(files[i])
                }
                  iterator(++i);
            })
        })(0)
        
    })
}
阅读 2.4k
2 个回答

因为get("/:albumName")的匹配范围是包含get("/")的。。所以可以考虑换个路径,比如get("/album/:albumName")

新手上路,请多包涵

因为get("/:albumName")的匹配范围是包含get("/")的。。所以可以考虑换个路径,比如get("/album/:albumName")

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题