从NodeJS的AJAX请求中获取数据并存储在数据库中

我有一个在NodeJS中从客户端获取数据的问题。

在客户端,我准备了JSON数据,就像你在codepen中看到的一样

在服务器端,我试图从客户端获取这些数据:

var express = require('express'); var mysql = require('mysql'); var app = express(); app.use('/', express.static('../client/app')); app.use('/bower_components', express.static('../client/bower_components/')); var server = require('http').createServer(app); var bodyParser = require('body-parser'); app.jsonParser = bodyParser.json(); app.urlencodedParser = bodyParser.urlencoded({ extended: true }); //mysql connection setup var connection = mysql.createConnection({ host : "localhost", port: "3306", user : "root", password : "", database : "db", multipleStatements: true }); app.get("/cities", function(req, res) { console.log(res.body); //I'm getting nothing var data= { city: req.body.city, country: req.body.country }; var query = connection.query('INSERT INTO table SET ?', data, function(err, res) { if (err) { console.log(err); } else { console.log('success'); } }); console.log(res); }); server.listen(3000, function () { 'use strict'; }); 

我做错了什么? 有没有办法在ST中debuggingNodeJS? 谢谢。

请尝试使用req.params.city来获取input数据。 它在我的项目中工作。 但是,我需要通过POST方法获取数据。

app.get – 使用req.params app.post – 使用req.body

而不是做:

 console.log(res.body); //I'm getting nothing 

我认为你必须发送响应作为res.send('success') 。 或者您可以尝试再次发送发布的值来testing:

 res.send(data); 

喜欢:

 var query = connection.query('INSERT INTO table SET ?', data, function(err, res) { if (err) { console.log(err); } else { console.log('success'); res.send(res.insertId); } });