2017-08-03 210 views
0

我是JavaScript的初學者,正在努力通過使用基於AjaxGET/ POST請求從某些Node.js後端代碼發出相同的請求。我使用MySQL數據庫。我已經通過一些教程並獲得一些理解。例如,Ajax POST請求可能是這樣的,將Node.js GET/POST請求更改爲Ajax

$.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按預期完成,我們將嵌入resresult

看來我必須做一些data: { name: addressName, address: wallet.getAddress() }部分的$.ajax請求,並在那裏撥打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) 
    }); 
}) 

如何正確地做到這一點?

+1

從Node到Ajax的確切含義是什麼?你在尋找如何使用Ajax來請求他們嗎? – y0hami

+0

是的,更新語言,並希望它會有所幫助。順便說一下,「英語」不是我的第一語言。 – Arefe

+1

那麼你想用網頁中的Ajax請求這些端點('/ walletinfo')嗎? – y0hami

回答

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更多信息。

+0

你能否看到我的代碼並提供了一個基於此的答案?我在請求中有'SQL'查詢。所以,這個通用的答案對我沒有多大幫助。 – Arefe

+1

你爲什麼要在網頁上查詢MySQL?這將是一個很大的安全風險。您應該始終在服務器端保留數據庫功能。 – y0hami

+0

這是一個演示應用程序。看,我們正在放棄'節點' – Arefe