我完全不知道为什么node.js会使包含其他文件的文件变得如此困难。
我有一个名为file_handler.js的文件
exports = {};
exports = {
upload_file: function (fileUploaderPath, filename) {
var child_process = require('intern/dojo/node!child_process');
child_process.spawn(fileUploaderPath + ' ' + filename);
}
};
我希望像
这样的东西var file_handler = require('./file_handler.js');
file_handler.upload_file(a,b);
上班。但我得到了upload_file()的“未定义不是函数”。我尝试了module.exports = {...}和exports = {...}的组合。模块和导出甚至没有在我的file_handler.js中定义,所以我必须设置exports = {};这对我来说毫无意义,因为Google上99%的例子都使用module.exports作为内置函数。
答案 0 :(得分:3)
好的,显然是因为我需要将其加载为AMD模块。
module.exports = {...}是CommonJS方式。
define(function(){...});是AMD的方式(我需要使用它)。
答案 1 :(得分:1)
应该是:
module.exports = {
upload_file: function (fileUploaderPath, filename) {
var child_process = require('intern/dojo/node!child_process');
child_process.spawn(fileUploaderPath + ' ' + filename);
}
};
我刚试过这个并且有效。
或者,您可以这样做:
exports.upload_file=function (fileUploaderPath, filename) {
var child_process = require('intern/dojo/node!child_process');
child_process.spawn(fileUploaderPath + ' ' + filename);
};