我可以使用一个require语句加载多个文件吗?

发布于 2021-01-31 23:13:12

也许这个问题有点愚蠢,但是可以用一个require语句加载多个.js文件吗?像这样:

var mylib = require('./lib/mylibfiles');

并使用:

mylib.foo(); //return "hello from one"

mylib.bar(): //return "hello from two"

在文件夹mylibfiles中将有两个文件:

One.js

exports.foo= function(){return "hello from one";}

Two.js

exports.bar= function(){return "hello from two";}

我当时在想将package.json放到文件夹中,以说加载所有文件,但是我不知道如何。我在想的另一个方法是让index.js再次导出所有内容,但我将重复工作。

谢谢!!

PD:我正在Windows 7机器上使用Node.js v0.611

关注者
0
被浏览
94
1 个回答
  • 面试哥
    面试哥 2021-01-31
    为面试而生,有面试问题,就找面试哥。

    首先使用require不会重复任何东西。它加载模块并对其进行 缓存
    ,因此require再次调用将从内存中获取它(因此您可以在不与模块源代码交互的情况下即时修改模块-
    有时这是理想的,例如,当您想在模块内部存储数据库连接时)。

    package.json不会加载任何内容,也不会与您的应用进行交互。仅用于npm

    现在,您不能一次需要多个模块。例如将发生,如果两者是什么One.js,并Two.js具有相同的名称定义的函数?还有更多的问题。

    但是您可以做的是编写附加文件,modules.js并显示以下内容

    module.exports = {
       one : require('./one.js'),
       two : require('./two.js'),
       /* some other modules you want */
    }
    

    然后您可以简单地使用

    var modules = require('./modules.js');
    modules.one.foo();
    modules.two.bar();
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看