You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

require模块时出现TypeError: squareArea is not a function的解决方法

解决TypeError: mfs.squareArea is not a function的问题

这个错误的核心原因是你编写的m-p-formulas-js模块没有正确导出squareArea函数,导致require之后无法访问到这个方法。下面是具体的排查和解决步骤:

1. 检查并修正模块的导出逻辑

在你的m-p-formulas-js模块文件中,需要明确将函数暴露给外部调用,Node.js有两种常用的导出方式:

方式一:批量导出多个函数

如果你的模块里有多个工具函数,可以用module.exports导出一个包含所有函数的对象:

// m-p-formulas-js.js 文件内容
function squareArea(side) {
  var sArea = side * side;
  return sArea;
}

// 假设还有其他函数,比如计算圆形面积
function circleArea(radius) {
  return Math.PI * radius * radius;
}

// 导出所有需要外部访问的函数
module.exports = {
  squareArea: squareArea,
  circleArea: circleArea
};

方式二:单个函数直接导出

如果只需要导出squareArea,或者想逐个添加导出的函数,可以直接给exports对象赋值:

// m-p-formulas-js.js 文件内容
exports.squareArea = function(side) {
  var sArea = side * side;
  return sArea;
};

2. 确认模块的require路径是否正确

如果这是你本地编写的模块(不是从npm安装的第三方包),require("m-p-formulas-js")会让Node.js去node_modules目录下查找同名包,而不是加载你自己写的文件。此时需要使用相对路径来引用:

// 如果模块文件和当前执行文件在同一目录下
var mfs = require("./m-p-formulas-js");
var test = mfs.squareArea(2);
console.log(test); // 此时应该输出4

3. 验证导出结果

如果还是有问题,可以先打印mfs对象,确认它包含了你需要的方法:

var mfs = require("./m-p-formulas-js");
console.log(mfs);
// 正常情况下会输出 { squareArea: [Function: squareArea] } 之类的内容

内容的提问来源于stack exchange,提问作者Jeff Lockhart

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 06:58:39