Как превратить sh карту в список в Javascript - PullRequest
0 голосов
/ 17 июня 2020

Итак, я пытаюсь взять данные из формы и поместить sh их в свой список в виде карты. В настоящее время он говорит:

Невозможно прочитать свойство 'url' неопределенного

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;
    imagedata.push({url: NewPost, description: Description});
    res.redirect("/");

});

Ответы [ 3 ]

1 голос
/ 17 июня 2020

Он говорит, что req.body не определено, потому что вы определили и запрос, и ответ как req

Замените app.post("/post", function(req, req) на app.post("/post", function(req, res)

0 голосов
/ 17 июня 2020

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

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("/");

});
0 голосов
/ 17 июня 2020

не видя клиентского кода (формы), я действительно не вижу ничего плохого в этом коде. Попробуйте добавить console.log к /post:

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;

    console.log("NewPost:", NewPost, "NewDescription:", Description);

    imagedata.push({url: NewPost, description: Description});

    console.log("imagedata:", imagedata);

    res.redirect("/");

});

, чтобы увидеть, какие данные передаются и что случилось с imagedata.

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