gpt4 book ai didi

javascript - 如何在 Node.js 的 Express.js 中获取多个变量?

转载 作者:行者123 更新时间:2023-11-30 00:23:25 24 4
gpt4 key购买 nike

我正在尝试从 html 页面获取表单数据到 Node Js 服务器。

我的 html 文件是 index.html

 <body>

<nav>
<ul>
<li>
<a href="#" class="button add">Add Product</a>
<div class="dialog" style="display:none">
<div class="title">Add Product</div>
<form action="" method="get">
<input id = "name" name="name" type="text" placeholder="Product Name"/>
<input name="code" type="text" placeholder="Product Code"/>
<input name="category" type="text" placeholder=" Category"/>
<input name="brand" type="text" placeholder="Brand"/>
<input type="submit" value="Ok"/>
</form>
</div>
</li>
<li class="radio">
<a href="#" class="button active"></a>

<a href="#" class="button"></a>

<a href="#" class="button"></a>
</li>
</ul>
</div>
</nav>
<p></p>
<script src='http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js'></script>

<script src="js/index.js"></script>




</body>

提交表单后,服务器不执行任何操作,只是获取包含所有详细信息的 url

我的服务器是server.js

var express = require("express"),
app = express(),
bodyParser = require('body-parser'),
errorHandler = require('errorhandler'),
methodOverride = require('method-override'),
hostname = process.env.HOSTNAME || 'localhost',
port = parseInt(process.env.PORT, 10) || 4004,
publicDir = process.argv[2] || __dirname + '/public';
var exec = require('child_process').exec;
var fs = require('fs');

//Show homepage
app.get("/", function (req, res) {
res.redirect("/index.html");
console.log("shubh ");
});
app.get("/index/", function (req, res) {
res.redirect("/index.html");
console.log("shubham ");
});

app.get("/index/:name", function (req, res){
console.log("shubham batra");
var keyword = req.query.code;
console.log(keyword);
//res.send('You sent the name "' + req.body.name + '".');
console.log(res.body);
});
app.use(errorHandler({
dumpExceptions: true,
showStack: true
}));
//Search page
app.use(methodOverride());
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
extended: true
}));
app.use(express.static(publicDir));
app.use(errorHandler({
dumpExceptions: true,
showStack: true
}));

console.log("Server showing %s listening at http://%s:%s", publicDir, hostname, port);
app.listen(port);

最佳答案

您的表单操作是 '',因此表单创建的 URL 将是/?name=xxx&code=yyy 等

从您的路由来看,您似乎希望 url 的格式为/xxx?code=yyy。

使您的表单操作为“/search”并添加以下 JS。

app.get("/search", function (req, res){
console.log("shubham batra");
var keyword = req.query.code;
console.log(keyword);
//res.send('You sent the name "' + req.query.name + '".');
});

当你发出 get 请求时,request.body 不会被设置。

关于javascript - 如何在 Node.js 的 Express.js 中获取多个变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32329330/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com