TypeError:. Register.route (...) uso não é uma função

votos
0

Eu estou usando express.Router()sempre que eu tento usemétodo dá o seguinte erro TypeError: register.route(...).use is not a function

Código / servidor / rotas

const express = require('express');
const register = express.Router();
const account = require(../controller/AccountController);
const Middleware = require(../utils/middlewares);


register.route('/')
    .post(Middleware.checkUser)
    .post(account.user_register)


register.route('/verify/:token')
    .get(Middleware.verifyEmail)

register.route('/resend/:email')    
    .use(Middleware.sendVerification)


module.exports = register;

Server.js

server.use('/register', register);

Quando eu uso um método como getnão há nenhum erro. Mas eu não quero usar qualquer método desde o middleware apenas envia um e-mail

Publicado 20/10/2018 em 14:03
fonte usuário
Em outras línguas...                            


1 respostas

votos
0

Como indicado na documentação , rota allmétodo é pensado para middleware específico-route, poderia ser:

register.route('/resend/:email')    
    .all(Middleware.sendVerification)

Se a rota está prevista para ser solicitado com apenas GET e pode não fazer sentido para outros verbos, deve ser reduzida para verbos suportadas:

register.route('/resend/:email')    
    .get(Middleware.sendVerification)

Neste caso sendVerificationparece ser manipulador de rota e não um middleware. É apropriado para especificá-lo apenas para getse /resend/deverá ser solicitado com GET.

Respondeu 20/10/2018 em 14:18
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more