首页 > 解决方案 > node.js 使用模块而不将它们分配给变量

问题描述

在 node.js 中,我必须在模块前面放置一个词干,然后才能调用其中的任何内容:

const example = require('example.js');
example.func();

我有一个非常混乱的 node.js 文件,我想把它分成几部分。但是,我的代码看起来像这样:

function func1(){ /* ... */ }
function func2(){ /* ... */ }

//blah blah
func1();
//blah blah    
func2();

如果我将其拆分为 file1.js 和 file2.js,我的代码需要如下所示:

var file1 = require('file1.js');
var file2 = require('file2.js');

//blah blah
file1.func1();
//blah blah
file2.func2();

我必须在我的函数之前放置 file1 或 file2 才能调用它,这是我想避免的。有没有可能没有这些茎?

澄清 我希望每个文件有多个功能。该示例仅使用每个文件 1 个函数作为示例。

标签: javascriptnode.jsimport

解决方案


听起来您希望每个导出都只导出函数,而不是包含函数的对象。在file1file2中,执行:

module.exports = function func1() {
};

代替

module.exports.func1 = function func1() {
};

然后你可以调用如下函数:

var func1 = require('file1.js');
var func2 = require('file2.js');

//blah blah
func1();
//blah blah
func2();

func1.js(将文件名重命名为和可能也有意义func2.js


推荐阅读