Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

expressValidator não é uma função

Alguém poderia me tira uma dúvida?

O modulo express-validator deveria retorna uma função para ser usado como uma nova middleware da aplicação certo?

Porque tem esse erro no meu console?

/home/jose-murillo/Alura/curso-node-api/payfast/config/curton-express.js:12
    app.use(expressValidator())
            ^

TypeError: expressValidator is not a function
    at module.exports (/home/jose-murillo/Alura/curso-node-api/payfast/config/curton-express.js:12:13)
    at Object.<anonymous> (/home/jose-murillo/Alura/curso-node-api/payfast/index.js:1:47)
    at Module._compile (internal/modules/cjs/loader.js:776:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:787:10)
    at Module.load (internal/modules/cjs/loader.js:653:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
    at Function.Module._load (internal/modules/cjs/loader.js:585:3)
    at Function.Module.runMain (internal/modules/cjs/loader.js:829:12)
    at startup (internal/bootstrap/node.js:283:19)
    at bootstrapNodeJSCore (internal/bootstrap/node.js:622:3)
[nodemon] app crashed - waiting for file changes before starting...

Meu custon-express:

const express = require('express')
const consign = require('consign')
const bodyParser = require('body-parser')
const expressValidator = require('express-validator')

module.exports = function() {
    const app = express()

    app.use(bodyParser.json())
    app.use(bodyParser.urlencoded({ extended: true }))

    app.use(expressValidator())

    consign()
        .include('controllers')
        .then('percistencia')
        .into(app)

    return app
}
2 respostas

Boa noite, José! Como vai?

Esse erro deve tá te assombrando devido a diferença entre a versão do Express Validator que vc está utilizando e a versão utilizada pelo instrutor no curso!

Para verificar se é isso mesmo, experimente baixar o projeto dessa atividade, verificar a versão do Express Validator e instalar a mesma versão no seu projeto.

Pegou a ideia? Qualquer coisa é só falar!

Grande abraço e bons estudos, meu aluno!

solução!

Fala aí José, tudo bem? O problema deve ser a versão do seu express-validator, você deve ter instalado as versões mais novas, porém, no curso o instrutor usa a versão 2.20.8 (hoje está na 6.1.1).

Veja que a versão está bem atrasada, por conta disso, o retorno do módulo express-validator não é mais uma função e sim um objeto.

Sugiro você usar a mesma versão do curso, para evitar problemas como esse:

npm i express-validator@2.20.8

Espero ter ajudado.