TypeError:register.route(...)。use不是一个函数

时间:2018-10-20 14:03:18

标签: node.js express

每当我尝试使用express.Router()方法时,我都在使用use,它会产生以下错误 TypeError: register.route(...).use is not a function

代码 / server / routes

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);

当我使用类似get的方法时,没有错误。但是我不想使用任何方法,因为中间件只是发送电子邮件

1 个答案:

答案 0 :(得分:0)

documentation中所述,路由react-native-services方法用于特定于路由的中间件,它可能是:

all

如果希望仅使用GET请求路线,而对于其他动词可能没有意义,则应将其范围缩小为支持的动词:

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

在这种情况下,register.route('/resend/:email') .get(Middleware.sendVerification) 似乎是路由处理程序,而不是中间件。如果希望通过GET请求sendVerification,则仅为get指定它是合适的。