Je rencontre un problème en utilisant la méthode override et en essayant de l'utiliser pour PUT à un élément dans Mongo. Je peux donc faire l'appel à Postman et ont la mise à jour du document comme prévu, mais en essayant de le faire de par l'interface utilisateur que nous recevons:Remplacement de noeud/méthode donnant une erreur sur PUT
Request URL:http://localhost:3000/characters/?_method=PUT
Request Method:POST
Status Code:404 Not Found
Voici les routes et autres:
app.js
const express = require('express');
const bodyParser = require('body-parser');
const methodOverride = require('method-override');
//
//
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
app.use(methodOverride('_method'));
routes
router.put('/:id', (req, res) => {
Character.findOne({
_id: req.params.id
})
.then(character => {
//
//
character
.save()
.then(character => {
res.redirect('/characters/show/${character.id}');
})
});
et le HTML
<form action="/characters/{{character.id}}?_method=PUT" method="POST" class="col s12">
<input type="hidden" name="_method" value="PUT" />
<input type="submit" value="Save" class="btn">
</form>
Merci à tous, toute aide serait appréciée.
devrait-il être 'router.put ('/ caractères /: id' ou est-ce routeur déjà attaché à un routeur avec le préfixe'/characters'? –
Dans les deux cas, la route demandée n'existe pas dans le code - le ': id' est manquant. – doublesharp