繁体   English   中英

导出 function vs const 然后导出

[英]exporting function vs const then export

我是 NodeJs 的菜鸟,并试图了解几种模式的区别和优缺点....

在 controller 我经常看到人们使用:

exports.myFunction = async function (req, res) { ......}

在我看到的其他例子中

const myFunction = async function (req, res) { ......}
module.exports = {myfunction}
  1. 将 function 声明为常量然后将其导出与将其作为定义的一部分导出有什么好处? 它只是样式,还是会使代码更具可测试性或其他?

  2. 我已经看到人们将服务编码为类并导出整个 class。 这是最佳实践吗?

  3. 为什么不将控制器定义为类,为什么不导出 class?

我在各种讨论模式和实践的文章中看到这些模式混在一起,但我对其中的细微差别一无所知。

谢谢。

预先定义 function 的最大原因是为了让以后更容易引用它。 这个:

const myFunction = (arg) => console.log(arg);

myFunction('foo');

module.exports = { myFunction };

是一些人可能更喜欢的

module.exports.myFunction = (arg) => console.log(arg);

module.exports.myFunction('foo');

特别是如果需要多次引用 function。

这是最佳实践吗?

它完全基于意见。 有些人喜欢,有些人不喜欢。

为什么不将控制器定义为类

JavaScript 不像 Java - 传递普通函数并使用它们绝对没有错,而不必构造一个 class 来包围它们。 通常,使用没有类的普通函数就可以了,将它们放入 class 只会增加额外的语法噪音,而不会带来任何好处。

使用 class 的主要原因是当您想要将持久数据可以对数据进行操作的方法相关联时。 如果您只有数据,普通的 object(或数组)通常可以解决问题; 如果您只想对数据进行操作而不将其存储在另一个容器中,那么普通的 function 通常可以解决问题。

但这不是一个硬性规定。 如果愿意,您仍然可以在任何地方使用类 - 您也可以完全省略类并仅使用函数/对象。 任何可以用 class 完成的逻辑也可以在没有它的情况下完成,反之亦然。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM