关于 node.js 中的函数调用
About function invoking in node.js
我运行一个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");
});
});
I run a node.js server, and when I navigate to /foo/bar it enters router.get()
实际上没有,它在 启动 时进入 router.get
,然后您导航到 /foo/bar
,并且只进入一次。
but why does it also enters the mongodb.MongoClient.connect()?
因为那是 router.get
的目的:告诉 Express(用于此的库)当有 /foo/bar
的请求时,它应该 运行 给定的回调。因此,当您导航到 /foo/bar
时,Express 会调用回调,而回调的代码会调用 mongodb.MongoClient.connect
。这种情况会反复发生,只要有 /foo/bar
.
的服务器请求
我运行一个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");
});
});
I run a node.js server, and when I navigate to /foo/bar it enters
router.get()
实际上没有,它在 启动 时进入 router.get
,然后您导航到 /foo/bar
,并且只进入一次。
but why does it also enters the mongodb.MongoClient.connect()?
因为那是 router.get
的目的:告诉 Express(用于此的库)当有 /foo/bar
的请求时,它应该 运行 给定的回调。因此,当您导航到 /foo/bar
时,Express 会调用回调,而回调的代码会调用 mongodb.MongoClient.connect
。这种情况会反复发生,只要有 /foo/bar
.