放置节点的节点快递路由器和打字稿路由未按预期运行

时间:2018-10-21 14:29:56

标签: node.js typescript express

具有node和express的新手,我在Express路由方面遇到了一个奇怪的问题。

在路由器文件中,我定义了一些路由(为简化起见):

import { Router, Request, Response, NextFunction } from "express";
import { AccountController } from './../controllers/account-controller';

const accountController: AccountController = new AccountController();

export class AccountRouter {
    public router: Router;

    /**
     * Instanciation du contrôleur pour les comptes
     */
    constructor() {
        this.router = Router();

        this._init();
    }

    private _init(): void {
        // Requête de contrôle d'existence
            .get(
                '/:username',
                this._check
            )
            // Ajout d'un compte
            .post(
                '/',
                this._add
            )

            // Mise à jour d'un compte
            .put(
                '/:mongoId',
                this._update
            )
    }

    /**
     * Check for a user
     * @param request 
     * @param response 
     * @param next 
     */
    private _check(request: Request, response: Response, next: NextFunction) {
        accountController.check(request, response, next);
    }

    /**
     * add an account
     * @param request 
     * @param response 
     * @param next 
     */
    private _add(request: Request, response: Response, next: NextFunction) {

        accountController.add(request, response, next);
    }

    private _update(request: Request, response: Response, next: NextFunction) 
{
        accountController.update(request, response, next);
    }
}

const accountRoutes = new AccountRouter();
export default accountRoutes.router;

Firsts路由按预期工作,并用Postman验证它们,但是... put的路由返回404 http错误...

当我尝试触摸来自客户的看跌路线时,请先为自己设置一个带有204的期权,然后是一个404作为自己的看跌期权。

update()方法在模型中定义...

在app.ts中(应用条目...):

    // Routes pour la gestion des comptes
    AccountRouter.use(cors(corsOptions));
    this.app.use('/api/v2/account', AccountRouter);

cors选项是:

const corsOptions: cors.CorsOptions = {
    allowedHeaders: ["Origin", "X-Requested-With", "Content-Type", "Accept", "X-Access-Token"],
    credentials: true,
    methods: "GET,HEAD,OPTIONS,PUT,PATCH,POST,DELETE",
    origin: '*',
    preflightContinue: false
}

我不明白为什么当其他路由按预期运行时,此特定路由为何返回404。

Thx 4帮助

0 个答案:

没有答案