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