我想将数据发送到数据库。我使用聚合物+ nodeJS。 我尝试了很多配置,但我总是有一个错误: POST 400(错误请求)
我使用3个文件application-header.html,index.js和sqlRequest.js。
application-header.html:这是我的前端html文件
<iron-ajax
method="POST"
id="getNotif"
on-response="notificationAjax"
content-type="application/json"
handle-as="json">
</iron-ajax>
<div class="notification" on-click="notificationMenu">
<span class="notificationSpan" id="notificationNumber"></span>
<span class="disNone notificationMenuCss" id="notifBar"></span>
</div>
<script>
Polymer({
notificationMenu: function() {
document.querySelector(".notificationMenuCss").classList.toggle("disNone");
var notifNumber =
document.getElementById('notificationNumber').innerHTML;
notifNumber = this.DataObj;
this.$.getNotif.url = "/getNotifBack";
this.$.getNotif.generateRequest();
},
notificationAjax: function(e) {
this.$.getNotif.url = "/getNotifBack";
this.$.getNotif.generateRequest();
}
});
index.js:这是我的一个JS后端文件
var express = require('express');
var app = require('express')();
var http = require('http').Server(app);
var router = express.Router();
var logger = require('./winstonConf.js');
router.post('/getNotifBack', function (req, res, next) {
var essai = require('./sqlRequest.js');
essai.notification(req.body, function (index) {
res.send(JSON.stringify(index));
});
});
sqlRequest.js:这是我的另一个JS后端文件
exports.notification = function (cb) {
var mysql = require('mysql');
var connection = mysql.createConnection({
host: 'localhost',
user: 'user',
password: 'password',
database: 'database'
});
var sqltable = "INSERT INTO notification VALUES (NULL, '1') ";
connection.connect();
connection.query(sqltable, function (err, results, fields) {
if (err) {
console.log('Error while performing Query');
connection.end();
} else {
console.log('success performing Remove Query');
connection.end();
cb("success");
}
});
};
答案 0 :(得分:1)
我找到了解决方案。它错过了铁ajax的身体元素。
<iron-ajax
method="POST"
id="getNotif"
on-response="notificationAjax"
content-type="application/json"
handle-as="json">
body = [{"element":"1"}]
</iron-ajax>