Не удается найти параметр в конечной точке DELETE в выражении узла - PullRequest
0 голосов
/ 19 января 2019

Я не могу получить доступ к указанному параметру URL в моей конечной точке удаления, и я понятия не имею, почему. GET, POST и PUT работает просто отлично.

const express  = require("express");
const app = express();
app.use(express.json());

const courses = [
    {id: 1, name: 'course1'},
    {id: 2, name: 'course2'},
    {id: 3, name: 'course3'},
];

app.delete('/api/courses/:id', (res, req) => {
    console.log(req.params.id);
});

Я делаю УДАЛЕНИЕ в Почтальоне, предоставляя URL "localhost: 5000 / api / courses / 1", и я получаю ответ:

<code><!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <title>Error</title>
    </head>
    <body>
        <pre>TypeError: Cannot read property &#39;id&#39; of undefined
            <br> &nbsp; &nbsp;at app.delete (C:\Users\Ove\WebstormProjects\Vidley\index.js:84:28)
            <br> &nbsp; &nbsp;at Layer.handle [as handle_request] (C:\Users\Ove\WebstormProjects\Vidley\node_modules\express\lib\router\layer.js:95:5)
            <br> &nbsp; &nbsp;at next (C:\Users\Ove\WebstormProjects\Vidley\node_modules\express\lib\router\route.js:137:13)
            <br> &nbsp; &nbsp;at Route.dispatch (C:\Users\Ove\WebstormProjects\Vidley\node_modules\express\lib\router\route.js:112:3)
            <br> &nbsp; &nbsp;at Layer.handle [as handle_request] (C:\Users\Ove\WebstormProjects\Vidley\node_modules\express\lib\router\layer.js:95:5)
            <br> &nbsp; &nbsp;at C:\Users\Ove\WebstormProjects\Vidley\node_modules\express\lib\router\index.js:281:22
            <br> &nbsp; &nbsp;at param (C:\Users\Ove\WebstormProjects\Vidley\node_modules\express\lib\router\index.js:354:14)
            <br> &nbsp; &nbsp;at param (C:\Users\Ove\WebstormProjects\Vidley\node_modules\express\lib\router\index.js:365:14)
            <br> &nbsp; &nbsp;at Function.process_params (C:\Users\Ove\WebstormProjects\Vidley\node_modules\express\lib\router\index.js:410:3)
            <br> &nbsp; &nbsp;at next (C:\Users\Ove\WebstormProjects\Vidley\node_modules\express\lib\router\index.js:275:10)
        

Может ли кто-нибудь объяснить мне, что здесь происходит? Так работает только конечная точка DELETE, все остальные в порядке

1 Ответ

0 голосов
/ 19 января 2019

Express передает ваш обработчик (req, res), а не (res, req), поэтому ваш req на самом деле res и не имеет поля .params.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...