Express.js方法被调用两次

时间:2014-12-18 20:10:21

标签: node.js mongodb express mongoose

这是我的代码:

app.get('/api/questions/:group/:limit', function(req, res) {
  var group = req.params.group;
  var limit = req.params.limit;
  console.log('123');

    return QuestionModel.find({group: group})
                        .sort({ creation_timestamp: -1 })
                        .limit(limit)
                        .exec(function(err, questions) {
                            if(!err) {
                                return res.send( { status: 'OK', result: questions });
                            } else {
                                res.statusCode = 500;
                                log.error('Internal error(%d): %s', res.statusCode, err.message);
                                return res.send({ error: 'Server error' });
                            }
                        });
});

当我在浏览器中打开localhost:5000/api/questions/js/5时,我可以看到该方法被调用了两次:

123
123

如果我像这样重写这个方法,那么方法只被调用一次:

app.get('/api/questions/:group/:limit', function(req, res) {
  var group = req.params.group;
  var limit = req.params.limit;
  console.log('123');
  return;
});

为什么在第一种情况下,方法被调用两次,我该如何避免这种情况?

已更新:它在Chrome中运行两次,但在Safari和Firefox中只运行一次。浏览器控制台中没有消息。

1 个答案:

答案 0 :(得分:1)

我找到了原因 - Google Chrome的Web技术通知程序扩展。