Javascript 如何将数据从客户端表单输入传输到服务器端Nodejs脚本?
我正在尝试实现从客户端的表单输入中获取数据并将其发送到服务器以供Nodejs后端处理的功能 我已经让服务器端功能正常工作,但我不确定如何通过提交表单的Javascript 如何将数据从客户端表单输入传输到服务器端Nodejs脚本?,javascript,node.js,Javascript,Node.js,我正在尝试实现从客户端的表单输入中获取数据并将其发送到服务器以供Nodejs后端处理的功能 我已经让服务器端功能正常工作,但我不确定如何通过提交表单的$.ajaxGET请求将数据从客户端表单发送到后端服务器 到目前为止,我掌握的代码是: 服务器端功能: app.get('/id', function(req,res) { var query = "SELECT * FROM Control"; connection.query(query, function() {
$.ajax
GET
请求将数据从客户端表单发送到后端服务器
到目前为止,我掌握的代码是:
服务器端功能:
app.get('/id', function(req,res) {
var query = "SELECT * FROM Control";
connection.query(query, function() {
console.log(query);
});
});
function select()
{
$.ajax({
type: 'get',
url: '/id',
success: function(data) {
var ceva = data;
console.log('#ceva');
},
error: function(err) {
console.log(err);
}
});
}
客户端功能:
app.get('/id', function(req,res) {
var query = "SELECT * FROM Control";
connection.query(query, function() {
console.log(query);
});
});
function select()
{
$.ajax({
type: 'get',
url: '/id',
success: function(data) {
var ceva = data;
console.log('#ceva');
},
error: function(err) {
console.log(err);
}
});
}
您希望使用POST请求而不是GET请求。这样做将允许您将数据与请求一起发送,然后在服务器端的查询中使用这些数据,并将响应发送回客户端。像这样: 客户端
function select() {
var id = $('#My-ID-Input').val();
$.ajax({
type: 'post',
url: '/id',
data : {
id : id
},
success: function(data) {
var id = data.id;
$('#My-ID-Input').val(id);
},
error: function(err) {
console.log(err);
}
});
}
app.post('/id', function(req, res) {
var data = req.body;
var id = data.id;
var query = "SELECT * FROM Control WHERE id=" + id;
connection.query(query, function(error, result) {
console.log(result);
res.send(result);
});
});
服务器端
function select() {
var id = $('#My-ID-Input').val();
$.ajax({
type: 'post',
url: '/id',
data : {
id : id
},
success: function(data) {
var id = data.id;
$('#My-ID-Input').val(id);
},
error: function(err) {
console.log(err);
}
});
}
app.post('/id', function(req, res) {
var data = req.body;
var id = data.id;
var query = "SELECT * FROM Control WHERE id=" + id;
connection.query(query, function(error, result) {
console.log(result);
res.send(result);
});
});
明白了强>
您需要确保您拥有express
bodyparser
在服务器中实现中间件,以确保数据
因为post请求的主体随后被解析为对象文本
在服务器端。在您的服务器模块/文件中,您需要包含以下代码,并确保您已经安装了npm安装体解析器
:
var-bodyParser=require('body-parser')代码>
app.use(bodyParser.json())代码>
是的,我当然有。但是剩下的呢?最烦人的事情是如何根据文本框中输入的id进行选择,以及如何用选择的值填充文本框。这就是我不明白的。您已经在使用JQuery,所以您只需从服务器获取数据响应,然后使用JQuery更新任何给定输入的值。我已经编辑了上面的回答来说明。明白了。剩下的唯一问题是,您编写查询时只选择了名为id的列。但我尝试的是从文本框中选择id=value的所有列。所以我不知道如何将值从客户端发送到服务器端,并使用它来正确查询。我尝试了如下查询:request.param.id
,但它仅适用于浏览器链接中的/。希望你明白我的意思。谢谢!这只是更新SQL查询的问题,正如我在上面所说明的。它与客户机和服务器之间如何传递数据无关。确定。我明白了,还有这个想法。早上我会试试看它是怎么工作的。现在非常感谢。你太棒了!