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

TypeError: ProductManager不是构造函数问题排查求助

问题排查:TypeError: ProductManager is not a constructor

核心原因

你定义ProductManager类的文件没有将类导出,导致另一个文件通过require引入时,拿到的不是可实例化的构造函数,因此无法用new关键字创建实例。

修复步骤

1. 在定义类的文件中添加导出语句

修改productos.js,在文件末尾添加module.exports = ProductManager,确保类能被其他文件正确引入:

const fs = require('fs')
const filename = './productos.json'

class ProductManager {
    products

    constructor() {
        this.products = []
    }

    #generateID = () => {
        if (this.products.length === 0) return 1
        return this.products[this.products.length - 1].id + 1
    }

    addProduct(title, description, price, image, code, stock) {
        const id = this.#generateID()
        const product = {id, title, description, price, image, code, stock}

        // Valido que el producto tenga todos los campos
        if (!title || !description || !price || !image || !code || !stock) {
            return console.log('Error: Todos los campos son obligatorios')
        }

        //Valido que el producto ingresado no exista
        const productExists = this.products.some((product) => product.code === code)
        if (productExists) {
            return console.log('Error: El producto ya existe')
        } else {
            this.products.push(product)
            fs.writeFileSync(filename, JSON.stringify(this.products, null, '\t'))
        }
    }

    getProducts() {
        const contenido = JSON.parse(fs.readFileSync(filename, 'utf-8'))
        console.log(" Muestro el contenido del archivo Productos", contenido)
        // 补充返回值,否则接口返回的data会是undefined
        return contenido
    }
}

// 添加导出语句
module.exports = ProductManager

2. 验证引入逻辑

调用文件中的const ProductManager = require('./productos.js')语句无需修改,只要定义文件正确导出,就能正常实例化类。

额外优化提示

原getProducts方法只有console.log无返回值,会导致接口响应中的data为undefined,上面的修复代码已添加return contenido,确保接口能返回正确的产品数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 05:54:59