我在回调中失去了对参数的理解。
app.get('/', function(req, res) {
res.render('index');
});
// A route for the home page - will render a view
这是使用快速库,是一个基本的主页路由。我只是对这实际上是如何得到req / res对象感到困惑?服务器本身是否在“/”页面上收到req / res对象时调用该函数?
我理解该函数的功能,我只是不知道它实际上是如何接收它的参数的。
答案 0 :(得分:3)
是的,您从服务器获取这些参数。每当Express(即Node.js)收到请求时,它就会运行你的回调并提供这两个参数。
把它想象成两个人之间的谈话:
请告诉我并给我他们的电话号码。是回电。电话号码是回叫的参数。
因此,在这种情况下,电话号码与您的req
和res
对象完全相同。我在这个例子中表现得像Node.js / Express,你是运行的应用程序。
HTH。
答案 1 :(得分:1)
这是一种直观的方式来看待它:
app.get()
是一个带2个参数的函数,第一个是你的路径作为字符串,第二个参数是一个函数。 app.get()将回调此函数;
所以我们假设你像这样调用app.get
:
app.get('/', function abc(req, res){..})
然后,app.get
的实现将类似于:
app.get = function(path, callBackFunction){
// do some stuff here to get the values of req and res
callBackFunction(req, res); // calling back the function passed to us with req and res
}