javascript - Nodejs,需要函数内或脚本顶部的模块。哪个更适合自定义模块?

标签 javascript node.js require

我正在编写一个自定义脚本,其中包含我所有常用的设置和功能。其中一个函数采用时间戳,并使用 Moment 以自定义格式返回人类可读的日期。

我的自定义脚本位于 node_modules 文件夹中,例如该文件名为 settings.js。现在,我知道我可以使用

将它包含在我的任何脚本的顶部

var settings = require('settings.js);

并通过

获取我的函数

settings.timestamp_to_date(时间戳,函数(日期){console.log(日期})

我不知道包含附加模块(moment 和 moment-timezone)的最佳位置。我现在将它们放在函数调用中,这样它们就不会加载到需要 settings.js 文件的每个应用程序上。我的想法是,它不会将该模块加载到不需要它的应用程序的内存中。

虽然这让我想知道,对于可能经常使用此功能的应用程序,每次运行该功能时都需要模块,这本身似乎是一个糟糕的选择。

通过将我的所有函数放在一个文件中并仅在特定应用程序需要时加载该函数所需的模块,哪个是完成我所追求的目标的最佳选择?

如果这意味着在每个应用程序中我必须在包含 settings.js 之前声明我要使用的模块,那么这并不理想。到目前为止,我的应用程序只是为我自己学习应用程序。我目前创建的任何东西都不会被很多人使用。

低使用率应用的最佳选择是什么?生产环境中高使用率应用的最佳选择是什么?

最佳答案

在搜索其他东西时偶然发现了这个http://justbuildsomething.com/node-js-best-practices/#2

它列出了在包含的脚本顶部而不是在函数中加载模块的几个很好的理由。

  1. 假设您有一个模块需要 30 分钟才能加载,这是不合理的,但请想象一下。如果该模块仅在一个路由处理程序函数中需要,则可能需要一些时间才能有人触发该路由,并且 Node.js 必须需要该模块。当发生这种情况时,服务器将在 30 分钟内无法访问,因为该模块已加载。如果这种情况发生在高峰时段,多个用户将无法访问您的服务器,并且请求将排队。
  2. 如果您需要的模块导致错误并使服务器崩溃,您可能几天都不知道该错误,尤其是如果您在很少使用的路由处理程序中使用此模块。没有人希望客户在凌晨 4 点打来电话,告诉他们服务器已关闭。

关于javascript - Nodejs,需要函数内或脚本顶部的模块。哪个更适合自定义模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43310674/

相关文章:

javascript - QML 鼠标在 MouseArea 中的绝对位置

javascript - 查看正在进行的 AJAX 调用的简单方法是什么?

javascript - NodeJS 中是否有任何简单的方法可以将多部分/表单数据转换为数组?

ruby - 为什么找不到库: no such file to load

PHP - MySQL 安全问题?

javascript - 为什么这在 NodeJS 中充当单例

JSON 的 JavaScript/Dojo 模板

javascript - 在传单中重新绘制一个矩形

javascript - 语法错误 : Unexpected token const { in node. js

javascript - 请求中的 node.js 多个函数