具有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帮助