Javascript 创建一个NodeJS模块
我试图用以下模式创建一个简单的NodeJS模块:Javascript 创建一个NodeJS模块,javascript,node.js,Javascript,Node.js,我试图用以下模式创建一个简单的NodeJS模块:module.exports=function(){}。 我的问题是,当我写exports.myFunc=myFunc它工作得很好,但是当我编写module.exports=myFunc它不工作 以下是我的一些代码片段: function.js: var myModule = require('./listFilesByExtArgs'); myModule.getFilesByExtArgs(process.argv[2], process.a
module.exports=function(){}
。
我的问题是,当我写exports.myFunc=myFunc代码>它工作得很好,但是当我编写module.exports=myFunc代码>它不工作
以下是我的一些代码片段:
function.js:
var myModule = require('./listFilesByExtArgs');
myModule.getFilesByExtArgs(process.argv[2], process.argv[3]);
var fs=require('fs');
var path=require('path');
var i=0;
函数getFilesByExtArgs(dir,ext){
fs.readdir(dir,function(err,data){
而(i这是因为module.exports
和exports.property
的行为不同。因此,当您编写module.exports=myFunc;
时,您实际上将完整的模块作为func。它使用以下方法:
var myModule = require('./listFilesByExtArgs');
// In mymodule is actually alias to a func listFilesByExtArgs
myModule(process.argv[2], process.argv[3]);
你可以找到一个完整的答案
将myFunc函数导出为模块,同时
exports.myFunc = myFunc
将myFunc函数作为导出模块的myFunc属性导出
所以你要么使用
// case: module.exports = myFunc
var myModule = require('myModule');
myModule();
或
谢谢您的解释@vanadium23.8-空格缩进?Eww…@GabrielTomitsuka由Emacs自动缩进。。
// case: module.exports = myFunc
var myModule = require('myModule');
myModule();
// case: exports.myFunc = myFunc
var myModule = require('myModule');
myModule.myFunc();