更清晰的node.jscallback

假设我们使用快递。 为什么我们使用这样的callback:

var port = process.env.PORT || 8080; app.listen(port, function(){ console.log('Listenning: ' + port); }); 

而不是这个:

 var port = process.env.PORT || 8080; var onBegin = function() { console.log('Listenning: ' + port); } app.listen(port, onBegin); 

这是必须的吗? 还是第二个可以导致问题? 我发现很多人使用内联callback,但为什么不直接在其他块或文件中定义所有的callback? 如果这是必须的,我在哪里可以find所有的最佳做法? 例如,我发现以下链接,但你可以推荐别的吗? 像必须,基本知识等

我find的链接: https : //www.codementor.io/mattgoldspink/nodejs-best-practices-du1086jja

编辑:

这是另一个callback函数作为我正在使用参数的variables:

 var onGET = function(req, res) { var ip = req.headers['x-forwarded-for'] || req.connection.remoteAddress; console.log('User connected: ' + ip); res.send('OK: ' + req.query.id); } app.get('*', onGET); 

匿名callback通常在教程和指南中显示,因为初学者更容易理解。 在开发实际的应用程序时,它不起作用。

下面是一个实际路线的例子:

 app.get('/user/', User.authenticate, User.getData); 

请注意,这种方式很容易理解。 另一种方式只适用于指南和教程,对于实际的应用程序, 使用指定的中间件


编辑:最后,这是你最好的理解。 对于像app.listencallback一样被调用的函数,您可以跳过命名它们。 这看起来更具可读性。

function上没有区别。 您可能想要使用匿名函数,因为它们可以更容易阅读,从而使代码更容易维护。

在另一个块或文件中定义callback是好的,但要注意范围 。

利用上述回应,

你可以让他们分开,它仍然会工作。

如果你在NodeJS上运行最新版本,你可以用更多的方式编写上面的代码,如下所示:

 var port = process.env.PORT || 8080; app.listen(port, => console.log('Listenning: ' + port); ); var onGET = (req, res) => { var ip = req.headers['x-forwarded-for'] || req.connection.remoteAddress; console.log('User connected: ' + ip); res.send('OK: ' + req.query.id); } app.get('*', onGET); 

如果需要更清晰的话,请回答以下问题。

希望这可以帮助..