javascript - 将 Node.js GET/POST 请求更改为 Ajax

标签 javascript jquery mysql node.js ajax

我是 JavaScript 的初学者,正在努力使用 Ajax 从某些 Node.js 后端代码发出相同的请求基于 GET/POST 请求。我使用 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结果一起嵌入。

看来我必须对数据做点什么:{ 名称: 地址名称, 地址:wallet.getAddress() } $.ajax 请求的一部分,并在那里进行 con.query 调用。

我还有一个从 Node 更改为 AjaxGET 请求,

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)
  });
})

如何正确地做到这一点?

最佳答案

在您的网页上,您需要像这样请求所需的端点:

// 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 .

关于javascript - 将 Node.js GET/POST 请求更改为 Ajax,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45480631/

相关文章:

c# - 连接异常过多

javascript - javascript中通过私有(private)方法访问私有(private)变量

javascript - 从使用pushState/popstate修改的url重建github页面

jquery - 如何在光标经过后回滚禁用输入的原始宽度?

javascript - 使用 localStorage 隐藏我的工具提示,但在我的脚本中

mysql - Ruby on Rails 多个唯一列

javascript - Meteor.wrapAsync 导致 Meteor 无响应

javascript - 使用 Promise.all 在 Google map 上放置标记 - 对象作为 React 子对象无效(发现 : [object Promise])

javascript - d3 图表正在显示,但在轴上显示时值关闭

c# - 如何在 "Add Connection Window"给MySql数据库端口号