我对javascript非常陌生,但我有一个restapi,我正在局域网上运行。我有一个mysql数据库,我正试图保存一个json格式的httppost主体。我的js代码会将数据打印为“result”,但是当它从 Postman 那里发送时不会保存它,但是如果我硬编码一个假条目为“var result={json format entries}”,那么它就可以保存到mysql。这是我的密码:
var http = require('http');
var express = require('express');
var bodyParser = require('body-parser');
const { parse } = require('querystring');
var mysql = require("mysql");
var app = express();
var port = process.env.port || 8080;
var connection = mysql.createConnection({
host : 'localhost',
user : 'root',
password : '*******',
database : 'userInfo'
});
connection.connect(function(err) {
if (err) throw err
console.log('You are now connected with mysql database...')
})
app.post('/licence', function (req, res) {
collectRequestData(req, result => {
console.log(result);
connection.query('INSERT INTO licence SET ?',result, function (error,
results, fields) {
if (error) throw error;
res.end(JSON.stringify(results));
});
res.end(`Parsed data belonging to ${result.fname}`);
});
});
function collectRequestData(request, callback) {
const FORM_URLENCODED = 'application/json';
if(request.headers['content-type'] === FORM_URLENCODED) {
let body = '';
request.on('data', chunk => {
body += chunk.toString();
});
request.on('end', () => {
callback(parse(body));
});
}
else {
callback(null);
}
}
我很确定我不需要这句话“res.end( Parsed data belonging to ${result.fname}
);" 但我想弄清楚的是如何将结果保存到mysql中的license表中。这就是console.log(result)打印的内容:{{{“hash”:“testhaaash”,“size”:13,“difficiency”:47,“time”:null,“timestamp”:null,“date”:null}':'}我认为这应该略有不同,但我不确定它应该是什么,也不确定如何更改它
1条答案
按热度按时间v7pvogib1#
在collectrequestdata中尝试更改
到