我经常看到的默认方法是:
// repeat this in all files
var express = require('express');
var mongoose = require('mongoose');
var async = require('async');
...
但是在我的NodeJS应用程序中,我正在这样做:
// include this only on the server file
_express = require('express');
_mongoose = require('mongoose');
_async = require('async');
...
我更喜欢使用_
前缀来标识库/模块,我不使用它,var
因为我不想在应用程序的每个文件上重复所有软件包的需求/设置。
这样,我require()
只能在server.js文件上一次模块化,并在任何地方使用它。
这是一个坏主意吗?
模块被缓存在nodejs中。最佳做法是在需要时提出要求。
从node.js文档中:
第一次加载模块后将对其进行缓存。这意味着(除其他事项外)每次对require('foo')的调用都将获得完全相同的返回对象(如果它将解析为同一文件)。
多次调用require('foo')可能不会导致模块代码多次执行。这是一个重要功能。使用它,可以返回“部分完成”的对象,从而即使在可能导致循环的情况下也可以加载传递依赖。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句