Reputation: 333
I'm struggling to make a function which selects from database based on the id entered in a textbox. I wrote the code, but it shows in console this error and I can't figure why: TypeError: Cannot read property 'id' of undefined
.
Code I have so far:
Client-side:
function select()
{
var id = $('#nr_reg').val();
$.ajax({
type: 'post',
url: '/id',
data : {
id: id
},
succes: function(data){
var id = data.id;
alert(id);
$('#optic').val(id);
},
error: function(err){
console.log(err);
}
});
}
Server-side:
app.post('/id', function(req,res) {
var data = req.body;
var id = data.id;
console.log(id);
var query = "SELECT * FROM Control WHERE id=" +id;
connection.query(query, function(error, result) {
console.log(result);
res.send(result);
});
});
L.E: Function select:
function select()
{
var id = $('#nr_reg').val();
$.ajax({
type: 'post',
dataType: 'json',
url: '/id',
data : {
id: id
},
success: function(data){
data = JSON.parse(data);
var id = data.id;
alert("merge");
$('#optic').val(id);
},
error: function(err){
console.log(err);
}
});
}
Upvotes: 0
Views: 14479
Reputation: 5612
You said your error is on server side? Add a body parser to your express app:
1st Install body-parser:
npm install body-parser -s
The include this in your app:
var express = require('express');
var bodyParser = require('body-parser');
app.use(bodyParser.json());
app.post(/*....*/);
Your app.post
must be AFTER app.use
line.
Full example here
BTW this is a duplicate of this
Upvotes: 2
Reputation: 7100
Make sure you've require
d body-parser
.
And use bodyParser.urlencoded
.
var bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({ extended: false }));
This should be before your .post
route definition.
EDIT:
Before all this, you must do npm install body-parser
:)
Upvotes: 3