导入模块错误不是函数?
问题描述:
我有文件导出“项目,国家manager.js”:导入模块错误不是函数?
module.exports.aggregate_states = function (member_states) {
console.log(member_states);
}
其他文件应导入此模块和使用功能“aggregate_states”:
var aggregate_states = require("./item-state-manager.js")
module.exports.saveItem = function() {
var aggregate = aggregate_states("state");
}
但我收到错误:
TypeError: aggregate_states is not a function
我是否导入'item-state-manager.js'错误?
答
据我所知,require返回module.exports对象。
如果aggregate_states是您想要导出的唯一函数,请使用此函数。
module.exports = function (member_states) {
console.log(member_states);
}
否则像这样导入它。
var aggregate_states = require("./item-state-manager.js").aggregate_states;
答
试试这个:
var aggregate_states = require("./item-state-manager.js").aggregate_states;
module.exports.saveItem = function() {
var aggregate = aggregate_states("state");
}
aggregate_states
只是整个恢复模块的属性,当你需要你的整个模块这是一个Object
,看起来像这样:
{
aggregate_states: function() {...}
}
答
你没有正确导入模块。无论是进口直接使用
var aggregate_states = require("./item-state-manager.js").aggregate_states;
或者如果您使用的是最新版本的节点导入模块,并调用函数
var stateManager = require("./item-state-manager.js");
// And use it like this
stateManager.aggregate_states(/*...*/)
的funcion,你也可以做
const { aggregate_states } = require("./item-state-manager.js");
thanks.will在6分钟后标记您的答案 – Serhiy