req.params.id дает двоеточие перед 24-х git шестнадцатеричным кодом - PullRequest
0 голосов
/ 13 апреля 2020
app.post("/campsites/:id/comments", function(req, res){
Campsites.findById(req.params.id.substring(1,), function(err, campsite){
    if(err)
        console.log(err);
    else{
        console.log("Campsite found");
        Comment.create(req.body.comment, function(err, comment){
            if(err)
                console.log(err);
            else{
                console.log("Comment Created");
                campsite.comments.push(comment);
                console.log("Comment Pushed");
                campsite.save();
                console.log("Campsite Updated");
                res.redirect("/campsites/" + campsite._id);
                console.log("Redirected");
            }
        });
    }
});
});

req.params.id возвращает двоеточие перед идентификатором, поэтому я должен использовать подстроку. Есть идеи, почему это так?

Ответы [ 2 ]

0 голосов
/ 13 апреля 2020

Вы можете попробовать это, чтобы принять два параметра из одного запроса.

app.post("/campsites/:id/:comments", function(req, res){

//your code

} 

и доступ к ним как req.params. имя_параметра Если это не сработает, попробуйте использовать console.log(req.params), чтобы увидеть, что он вам дает

, если вы хотите принять комментарий в качестве элемента тела, то не нужно указывать его в URL, код может быть

app.post("/campsites/:id", function(req, res){

//your code

} 

и иметь доступ к req. params.id и req.body.commets и убедиться, что значение console оба.

0 голосов
/ 13 апреля 2020

Не видя код, который генерирует URL, ведущий к этой конечной точке, наиболее вероятным объяснением является то, что ваш URL содержит это двоеточие. Если вы новичок в Express - двоеточие, используемое при определении ваших маршрутов, используется только синтаксическим анализатором Express, чтобы указать, что эта часть URL является переменной и должна именоваться в соответствии с тем, что следует после двоеточия. Вы заменяете всю :variable-name часть URL-адреса значением, а не только часть после двоеточия, для отправки запросов к этой конечной точке.

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