Nodejs中的Mongodb找到一次方法调用

时间:2016-05-06 02:15:59

标签: javascript node.js mongodb express callback

嗨,我从昨天起就遇到了这个小问题。 所以在这里,我只是想从Mongodb获取与我的参数url匹配的url,然后重定向到返回的original_url。 它似乎工作一次,但当我再次调用它。我给了我一个错误。 我从Mongodb尝试了许多不同的方法,仍然无法使它工作。 以下是电话:

const func = (short_url, cb) => {
  db.collection('urls')
    .find({short_url: short_url})
    .each((err, doc) => {
      if(err) console.log(err);
      if(doc) {
        cb(doc.original_url)
      } else {
        console.log('You came back');
      }
      db.close();  
    });
};

app.get('/:url', (req, res) => {
  const currentUrl = `https://${req.headers.host}/${req.params.url}`;
  const cb = (url) => { 
    res.redirect(url);
  };
  func(currentUrl, cb);
});

当它第一次触发时,它获取返回的值,但同时它返回到func函数并返回'你回来' console.log。

下次我调用同一个网址时,它会给我这个错误:

TypeError: Cannot read property 'each' of undefined

我不知道如何对其进行排序。我精疲力尽了。 提前致谢。

0 个答案:

没有答案