I want to send data to database. I use polymer + nodeJS. i tried a lot of configuration but i always have an error: POST 400 (Bad Request)
I use 3 files application-header.html, index.js and sqlRequest.js.
application-header.html : Here is my front-end html file
<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 : Here is one of my JS back-end file
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 : Here is another of my JS back-end file
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");
}
});
};
i found the solution. It was missing a body element for iron ajax.
<iron-ajax
method="POST"
id="getNotif"
on-response="notificationAjax"
content-type="application/json"
handle-as="json">
body = [{"element":"1"}]
</iron-ajax>