首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TypeError:"x“不是构造函数

TypeError:"x“不是构造函数
EN

Stack Overflow用户
提问于 2020-10-19 03:00:28
回答 1查看 604关注 0票数 0
代码语言:javascript
复制
TypeError: Produto is not a constructor
    at exports.create (C:\Users\mathe\Documents\TESTES\todoList\back-end\src\controllers\produtos.controller.js:18:4)
    at Layer.handle [as handle_request] (C:\Users\mathe\Documents\TESTES\todoList\back-end\node_modules\express\lib\router\layer.js:95:5)
    at next (C:\Users\mathe\Documents\TESTES\todoList\back-end\node_modules\express\lib\router\route.js:137:13)
    at Route.dispatch (C:\Users\mathe\Documents\TESTES\todoList\back-end\node_modules\express\lib\router\route.js:112:3)
    at Layer.handle [as handle_request] (C:\Users\mathe\Documents\TESTES\todoList\back-end\node_modules\express\lib\router\layer.js:95:5)
    at C:\Users\mathe\Documents\TESTES\todoList\back-end\node_modules\express\lib\router\index.js:281:22
    at Function.process_params (C:\Users\mathe\Documents\TESTES\todoList\back-end\node_modules\express\lib\router\index.js:335:12)
    at next (C:\Users\mathe\Documents\TESTES\todoList\back-end\node_modules\express\lib\router\index.js:275:10)
    at Function.handle (C:\Users\mathe\Documents\TESTES\todoList\back-end\node_modules\express\lib\router\index.js:174:3)
    at router (C:\Users\mathe\Documents\TESTES\todoList\back-end\node_modules\express\lib\router\index.js:47:12)

"produtos构造函数“:

代码语言:javascript
复制
exports.create = (req, res) => {
  const new_produto = new Produto(req.body);

    if(req.body.constructor === Object && Object.keys(req.body).length ===0) {
        res.status(400).send({error: true, message: "Please provide all required field"});
    } else {
        Produto.create(new_produto, (err, Produto) => {
            if(err) res.send(err);

            res.json({
                error: false,
                message: "Produto added sucefull",
                data: Produto
            });
        });
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-19 04:26:35

您必须更改Produto的定义。

从这里开始

代码语言:javascript
复制
const Produto = () => { ... }
Produto.create = (newProd, result) => { ... }

到这个

代码语言:javascript
复制
function Produto() { ... }
Produto.prototype.create = function (newProd, result) { ... }

这将创建一个带有create方法的构造函数,而箭头函数不创建构造函数,并且不是创建方法的最佳方法,因为它不保留this上下文。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64417208

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档