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("/");
});
添加回答
举报