0
votes

Comment pousser une carte dans une liste dans JavaScript

Alors, ce que j'essaie de faire est de prendre des données d'une forme et de la pousser dans ma liste comme carte. Il dit actuellement

ne peut pas lire la propriété 'URL' de indéfini xxx


8 commentaires

Votre question n'est pas claire


Alors, quel est votre problème?


Voulez-vous dire objet quand vous dites une carte?


Désolé, ce que j'essaie de faire est de repousser la variable de nouvelle-poste et une description de la variable dans la liste de données d'image en tant que carte. Ce serait donc comme ce qui est actuellement dans la liste de données d'image.


Il indique actuellement l'URL non définie


Il ne dis pas URL est indéfini, il est indiqué req.body est indéfini.


Vous avez un typo: (req, req) devrait être (req, res)


Vous avez raison, mon erreur était la faute de frappe. Merci pour l'aide!


3 Réponses :


0
votes

sans voir le code côté client (le formulaire), je ne vois rien de mal avec le code. Essayez d'ajouter console.log à / post : xxx

pour voir quelles données sont données et ce qui est arrivé à ImageData .


8 commentaires

Il s'agit d'une erreur sur l'affectation à Newpost . Il ne sera jamais atteint de la console console.log () ligne.


Quelle est l'erreur? S'il vous plaît inclure-le dans votre question


C'est au début de la question: "Impossible de lire la propriété" URL "de non définie"


Le seul endroit où il essaie de lire la propriété url est dans req.body.url , de sorte que cela implique que req.body est indéfini.


Ohhh, ok désolé pour que nous puissions voir le formulaire HTML?


BTW, ce n'est pas ma question.


En outre, à la première ligne, essayez d'ajouter console.log (req.body) pour voir le corps complet.


Nous savons que dire non défini . Si vous souhaitez connecter quelque chose, essayez console.log (req) . Cela montrera un objet résultat à la place d'un objet de demande , à cause de la faute de frappe.



0
votes

Comme mentionné la question n'est pas vraiment claire, mais c'est peut-être ce que vous recherchez bien que je ne voie pas vraiment le cas d'utilisation pour l'utilisation de la carte au lieu d'un objet dans ce cas. Voir ce message sur quand utiliser une carte ici

express = require("express");
app = express();
var bodyParser = require("body-parser");
app.use(express.static("public"));
var imagedata = [
    {url: "...", description: "..."},
    {url: "...", description: "..."}
];
app.use(bodyParser.urlencoded({extended: true}));


app.get("/", function(req, res){
    res.render("home.ejs", {imagedata: imagedata});
});
app.post("/post", function(req, req){
    var NewPost = req.body.url;
    var Description = req.body.description;
    let map = new Map() 
    map.set('url', NewPost).set('description', Description)
    imagedata.push(map);
    res.redirect("/");

});


2 commentaires

Il n'utilise pas de carte. Il utilise simplement le mot "carte" pour signifier "objet".


Changer d'un objet à une carte ne corrigera pas l'erreur qu'il obtient. C'était juste une faute de frappe dans un nom de variable.



1
votes

C'est dire req.body est indéfini car vous avez défini à la fois la demande et la réponse comme req

Changer app.post ("/ post", fonction (req, req) à app.post ("/ post", fonction (req, res) < / p>


1 commentaires

La question devrait simplement être fermée comme une faute de frappe, pas besoin de poster une réponse.