将 Node.js GET /POST 请求更改为 Ajax
Posted
技术标签:
【中文标题】将 Node.js GET /POST 请求更改为 Ajax【英文标题】:Change the Node.js GET /POST requests to the Ajax 【发布时间】:2018-01-10 20:20:26 【问题描述】:我是javascript
的初学者,正在努力通过使用基于Ajax
的GET/ POST
请求从一些Node.js
后端代码发出相同的请求。我使用mysql
数据库。我已经阅读了一些教程并获得了一些理解。例如,Ajax POST
请求可能类似于,
$.ajax(
url: '/walletinfo',
method: 'POST',
data:
name: addressName,
address: wallet.getAddress()
,
success: function(result)
console.log(result)
,
error: function(err)
console.log(err)
)
提供了我的Node.js POST
请求,
// initiations of the code
const express = require('express')
const path = require('path')
const bodyParser = require("body-parser");
const mysql = require('mysql');
const app = express()
const con = mysql.createConnection(
host: "localhost",
user: "testuser",
password: "testpassword",
database : 'wallet1'
);
con.connect(function(err)
if (err) throw err;
console.log("Connected!");
);
app.use('/', express.static(path.join(__dirname, 'public')))
app.use(bodyParser.urlencoded( extended: true ));
app.use(bodyParser.json());
// initiations of the code
app.post('/walletinfo', function (req, res)
var sql = "INSERT INTO wallet_info (name, address) VALUES ('" + req.body.name +"', '" + req.body.address + "')";
con.query(sql, function (err, result, fields)
if (err) console.error(err);
res.json(result)
);
)
因此,似乎req
对象构建了SQL
查询,而con.query
试图执行它。如果INSERTION
按预期完成,我们将res
嵌入result
。
看来我必须对$.ajax
请求中的data:
name: addressName,
address: wallet.getAddress()
部分做点什么,并在那里拨打con.query
。
我还有一个GET
请求从Node
更改为Ajax
,
app.get('/walletinfo', function (req, res)
con.query("SELECT * FROM wallet_info", function (err, result, fields)
if (err) throw err;
console.log(result);
res.json(result)
);
)
如何正确操作?
【问题讨论】:
从 Node 更改为 Ajax 的确切含义是什么?您是否正在寻找如何使用 ajax 请求它们? 是的,更新了语言,希望对您有所帮助。顺便说一句,English
不是我的第一语言。
那么你想通过网页的 Ajax 请求这些端点 (/walletinfo
) 吗?
是的。这些是相同的,但是,我使用的应用程序有许多不同的端点。
【参考方案1】:
在您的网页上,您需要像这样请求所需的端点:
// GET Request
$.ajax(
url: "http://yourdomain.com/walletinfo",
method: "GET"
).done(function(data)
console.log(data) // Your wallet info from the server (MySQL Result)
);
// POST Request
$.ajax(
url: "http://yourdomain.com/walletinfo",
method: "POST",
data:
name: "<NAME>",
address: "<address>"
,
dataType: "json"
).done(function(data)
console.log(data) // Your MySQL Result from the query insert
);
您可以找到有关 jQuery ajax here 的更多信息。
【讨论】:
能否请您查看我的代码并在此基础上提供答案?我在请求中有SQL
查询。所以,这个通用的答案对我没有多大帮助。
为什么要在网页上查询 MySQL?那将是一个很大的安全风险。您应该始终将数据库功能保留在服务器端。
这是一个演示应用程序。看,我们正在删除Node
您无法在浏览器中查询 MySQL,您需要通过 Node MySQL 模块提供的 MySQL 驱动程序来执行此操作。您需要在某处的服务器上请求一个页面。
有什么方法可以通过Ajax GET and POST
请求实现这一点以及如何做到这一点?我在代码中有MySQL
const mysql = require('mysql'); const con = mysql.createConnection( host: "localhost", user: "testuser", password: "testpassword", database : 'wallet1' );
以上是关于将 Node.js GET /POST 请求更改为 Ajax的主要内容,如果未能解决你的问题,请参考以下文章
AFNetworking 将重定向请求从 GET 更改为 POST
将 EXTJS AJAX 方法从 GET 更改为 POST 将导致任何性能问题