我正在编写一个自定义脚本,其中包含我所有常用的设置和功能。其中一个函数采用时间戳,并使用 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
它列出了在包含的脚本顶部而不是在函数中加载模块的几个很好的理由。
假设您有一个模块需要 30 分钟才能加载,这是不合理的,但请想象一下。如果该模块仅在一个路由处理程序函数中需要,则可能需要一些时间才能有人触发该路由,并且 Node.js 必须需要该模块。当发生这种情况时,服务器将在 30 分钟内无法访问,因为该模块已加载。如果这种情况发生在高峰时段,多个用户将无法访问您的服务器,并且请求将排队。
如果您需要的模块导致错误并使服务器崩溃,您可能几天都不知道该错误,尤其是如果您在很少使用的路由处理程序中使用此模块。没有人希望客户在凌晨 4 点打来电话,告诉他们服务器已关闭。
关于javascript - Nodejs,需要函数内或脚本顶部的模块。哪个更适合自定义模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43310674/