3 回答

TA貢獻1824條經驗 獲得超6個贊
說req.body
是未定義的,因為您將請求和響應都定義為req
更改app.post("/post", function(req, req)
為app.post("/post", function(req, res)

TA貢獻1795條經驗 獲得超7個贊
在沒有看到客戶端代碼(表單)的情況下,我真的看不出代碼有什么問題。嘗試添加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。

TA貢獻1797條經驗 獲得超4個贊
如前所述,這個問題并不是很清楚,但也許這就是您要尋找的東西,盡管我并沒有真正看到在這種情況下使用地圖而不是對象的用例。在此處查看有關何時使用地圖的帖子
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("/");
});
添加回答
舉報