Sat*_*tra 4 html javascript ejs node.js express
在以下代码中,我根据用户请求显示以下 HTML 文件。我还想在我的 app.js 文件中访问我的 app.post() 函数中的俱乐部名称和类型数据值。
<!DOCTYPE html>
<html>
<head>
<title><%= title %></title>
<link rel='stylesheet' href='/stylesheets/style.css' />
</head>
<body>
<% include templates/adminheader.ejs %>
<h1>Respond to Club Requests</h1>
<form name="clubform" method="post">
<% for (var i in clubreq){%>
Club Name:<%= clubreq[i].clubname %><br><br>//I want to access this variable in my app.post() function
Club Type:<%= clubreq[i].type %><br><br>
<input type="submit" value="accept"/><br><br><hr>
<%} %>
</form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
在app.js里面。在这里,我根据用户请求呈现 HTML 文件
app.get('/clubreq', function(req, res, next){
res.render('clubreq', {
title: 'Club Requests',
"clubreq" : docs
});
});
app.post('/clubreq', function(req, res, next){
//I want to access clubname and type datavariables here and store it in my mongodb database
});
Run Code Online (Sandbox Code Playgroud)
让我们从获取信息到表单开始。像这样编辑表单:
<form action="/clubreq" method="post">
<% for (var i in clubreq){%>
Club Name: <input type="text" name="clubname[]" value="<%= clubreq[i].clubname %>" /><br><br>
Club Type: <input type="text" name="clubtype[]" value="<%= clubreq[i].type %>" /><br><br>
<input type="submit" value="accept"/><br><br><hr>
<%} %>
</form>
Run Code Online (Sandbox Code Playgroud)
重点是添加 action 属性,指示在哪里提交表单,并添加输入以确保值和表单一起传输。如果您不喜欢它的外观,可以将输入类型更改为隐藏,然后像以前一样添加俱乐部名称和俱乐部类型的另一个回声,供最终用户查看。
现在关于如何访问表单数据服务器端,将以下内容与所有其他中间件一起添加到顶部:
app.use(express.bodyParser());
Run Code Online (Sandbox Code Playgroud)
接下来,您可以像这样访问您的方法中的帖子数据:
app.post('/clubreq', function(req, res, next){
// req.body object has your form values
console.log(req.body.clubname);
console.log(req.body.clubtype);
});
Run Code Online (Sandbox Code Playgroud)
希望有帮助