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

Node.js用Postman发POST请求报TypeError: Item is not a constructor如何解决

错误产生原因
  • 模型文件item.js采用命名导出的方式暴露Mongoose实例,未设置默认导出:你将模型构造函数挂载在了导出对象的itemData属性上,业务代码直接通过const Item = require('../model/item.js')引入时,拿到的是包含itemData、itemSchema两个属性的对象,并非模型构造函数本身,调用new Item()时自然会触发「不是构造函数」的类型错误。
解决方法

两种方案二选一即可:

方案1:修改业务代码引入逻辑

调整引入语句,直接取导出对象中的itemData作为构造函数:

// 替换原有引入语句
const { itemData: Item } = require('../model/item.js');

方案2:修改模型文件导出逻辑

给模型文件添加默认导出,适配现有业务代码的引入写法:

// item.js中替换原有导出代码
var itemData = mongoose.model("itemData", itemSchema);
// 默认导出模型构造函数
module.exports = itemData;
// 仍可保留schema的命名导出供其他文件使用
module.exports.itemSchema = itemSchema;

额外提示:当前模型中created字段设置了unique: true属性,若业务场景存在短时间内批量创建数据的需求,可能会出现唯一索引冲突报错,不需要唯一限制可以删除该配置。

内容的提问来源于stack exchange,提问作者Miloš Milutinov

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 06:15:03