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)

"конструктор продукции":

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
            });
        });
    }
}
0
Diaszum13 18 Окт 2020 в 22:00

1 ответ

Лучший ответ

Вы должны изменить определение Produto.

Из этого

const Produto = () => { ... }
Produto.create = (newProd, result) => { ... }

К этому

function Produto() { ... }
Produto.prototype.create = function (newProd, result) { ... }

Это создаст функцию-конструктор вместе с методом create в отличие от функции стрелки, которая не создает конструктор и не является лучшим вариантом для создания методов, поскольку не сохраняет контекст this.

0
Sebastian Kaczmarek 18 Окт 2020 в 20:26