从 NodeJS 中的 AJAX 请求中获取数据并存储在数据库中
Get data from AJAX request in NodeJS and store in DB
我在使用 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 中调试 NodeJS?
谢谢
而不是做:
console.log(res.body); //I'm getting nothing
我认为您必须将回复发送为 res.send('success')
。或者您可以尝试再次发送发布的值进行测试:
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);
}
});
请尝试此 req.params.city
来获取输入数据。它适用于我的项目。但是,req.body
我用于获取通过 POST 方法发送的数据。
app.get - use req.params
app.post - use req.body
我在使用 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 中调试 NodeJS? 谢谢
而不是做:
console.log(res.body); //I'm getting nothing
我认为您必须将回复发送为 res.send('success')
。或者您可以尝试再次发送发布的值进行测试:
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);
}
});
请尝试此 req.params.city
来获取输入数据。它适用于我的项目。但是,req.body
我用于获取通过 POST 方法发送的数据。
app.get - use req.params app.post - use req.body