问题
I have absolutely no clue why node.js makes including files from other files so difficult.
I have a file called file_handler.js
exports = {};
exports = {
upload_file: function (fileUploaderPath, filename) {
var child_process = require('intern/dojo/node!child_process');
child_process.spawn(fileUploaderPath + ' ' + filename);
}
};
I would expect something like
var file_handler = require('./file_handler.js');
file_handler.upload_file(a,b);
to work. But I'm getting an "undefined is not a function" for upload_file(). I tried combinations of module.exports = {...} and exports = {...}. module and exports aren't even defined in my file_handler.js, so I have to set exports = {}; Which makes no sense to me since 99% of the examples on Google use module.exports as built-in.
回答1:
Okay, apparently it's because I need to load it as an AMD module.
module.exports = {...} is the CommonJS way.
define(function() {...}); is the AMD way (which I needed to use).
回答2:
It should be:
module.exports = {
upload_file: function (fileUploaderPath, filename) {
var child_process = require('intern/dojo/node!child_process');
child_process.spawn(fileUploaderPath + ' ' + filename);
}
};
I have just tried this and it worked.
Alternatively, you can do something like this:
exports.upload_file=function (fileUploaderPath, filename) {
var child_process = require('intern/dojo/node!child_process');
child_process.spawn(fileUploaderPath + ' ' + filename);
};
来源:https://stackoverflow.com/questions/33079738/cannot-set-property-exports-of-undefined