我运行了一个node.js服务器,当我导航到/foo/bar
时,它进入router.get()
,但为什么它也会进入mongodb.MongoClient.connect()
?
它在哪里被调用?
var mongodb = require('mongodb');
router.get('/foo/bar', function (req, res) {
console.log("in router get");
mongodb.MongoClient.connect(uri, function(error, db) {
console.log("in mongo db");
});
});
答案 0 :(得分:1)
我运行了一个node.js服务器,当我导航到/ foo / bar时,它进入
router.get()
实际上没有,它在启动上输入router.get
,然后导航到/foo/bar
,并且只执行一次。
但为什么它也会进入mongodb.MongoClient.connect()?
因为这是router.get
的目的:告诉Express(用于此的库)当有/foo/bar
的请求时,它应该运行给定的回调。因此,当您导航到/foo/bar
时,Express会调用回调,而回调的代码会调用mongodb.MongoClient.connect
。只要有/foo/bar
的服务器请求,就会反复发生这种情况。