【问题标题】:Change the Node.js GET /POST requests to the Ajax将 Node.js GET /POST 请求更改为 Ajax
【发布时间】:2018-01-10 20:20:26
【问题描述】:

我是JavaScript 的初学者,正在努力通过使用基于AjaxGET/ 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) 吗?
  • 是的。这些是相同的,但是,我使用的应用程序有许多不同的端点。

标签: javascript jquery mysql node.js ajax


【解决方案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' });
猜你喜欢
  • 1970-01-01
  • 2021-11-01
  • 2021-01-16
  • 2017-11-09
  • 1970-01-01
  • 2017-01-31
  • 2020-07-14
  • 1970-01-01
  • 2023-01-11
相关资源
最近更新 更多