我对Node.js很新,我只想弄清楚参数在代码的回调方法中是如何工作的。
我只能理解第一个,函数(req,res),因为我在服务器端工作时在Java中使用过它,但我真的不明白它是如何自动调用memcached函数或者是如何启动的如果有人可以向我解释这是如何工作的,我真的很感激。谢谢
server.on('request', function(req, res) {
//get session information from memcached
memcached.getSession(req, function(session) {
//get information from db
db.get(session.user, function(userData) {
//some other web service call
ws.get(req, function(wsData) {
//render page
page = pageRender(req, session, userData, wsData);
//output the response
res.write(page);
});
});
});
});
答案 0 :(得分:1)
它可以粗略地与在Java中传递匿名类进行比较。例如,要在Java中对集合进行排序,您需要传递一个比较器类,该类具有比较两个对象的方法。之后,当排序算法需要比较对象时,它会调用提供的类中的函数。
在javascript函数中是第一类对象,这意味着我们不需要“包装器”类,可以将它作为参数传递给另一个函数。
在你的情况下,“memcached.getSession”将执行is't logic,找到会话,并调用你在第二个参数中传递的匿名函数,并将session作为参数。