Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Express函数被多次调用_Javascript_Node.js_Express_Routes - Fatal编程技术网

Javascript Express函数被多次调用

Javascript Express函数被多次调用,javascript,node.js,express,routes,Javascript,Node.js,Express,Routes,我有这条路线: router.get("/cat/:cat", function(req, res){ Play.find({style: req.params.cat}).sort({date: -1}).exec(function(err, play){ if(err){ console.log(err); req.flash("error", "(Error - Find-2-1) Find Playlist"); res.redirect(

我有这条路线:

router.get("/cat/:cat", function(req, res){
  Play.find({style: req.params.cat}).sort({date: -1}).exec(function(err, play){
    if(err){
      console.log(err);
      req.flash("error", "(Error - Find-2-1) Find Playlist");
      res.redirect("/index");
    } else {
      Categories.find({name: req.params.cat}).exec(function(err, cat){
        if(err){
          console.log(err);
        } else {
          console.log("\n "+ cat +" \n");
          res.render("Categories/show.ejs", {
            ttt: cat,
            playlists: play
          });
        }
      });
    }
  });  
});
但是当我访问/cat/:cat时,我会打印两次“cat”。我试图回答这个问题,但没用。我不知道为什么会发生这种情况,只有这条路线会发生这种情况,其他路线都很好

它在页面开始加载时打印,然后在页面完成加载时打印


当我摆脱
类别。find
过程时,它也可以正常工作。

你试过使用callback或promise而不是exec吗?@VivekKumar我该怎么做?感谢You@VivekKumar我尝试使用
findById
。当我使用
findById
时,它工作正常。您是否在控制台中看到错误消息,或者仅
cat
被打印两次?由于同一请求打印了两次,因此
res.render
也将被调用两次,这将发出一个错误。在
播放之前,您是否曾经在
控制台.log('get'+req.params.cat)
上输入过。查找
以检查您是否真的只有一个请求?@t.niese only
cat
被打印两次。我尝试使用
findById
。当我使用
findById
时,它工作得很好