I am using jquery and Node.js as server, and I'm getting this error 500 Internal Server Error. I want this button to insert this form information in to my database. Why is this not working?
Controller.js :
'use strict'
var mysql = require('mysql')
const CONN = mysql.createConnection({
    host: 'localhost',
    user: 'root',
    password: '',
    database: 'db'
})
module.exports = 
{
    // Adds teacher to table
    addTeacher: (req, res) => {
        let v = req.body;
        console.log(req.body)
        CONN.query('INSERT INTO teacher (name, email) VALUES (?, ?)', 
[v.name, 
        v.email], 
            (error, results, fields) => {
                if(error) {
                    console.log("Error, reaspn: "+error.mysql)
                    res.json(error)
                } else {
                    console.log("Data added succesfully")
                    res.statusCode = 201;
                }
            }) 
    }
}
Server.js:
express = require('express')
var controller = require('./controller')
var app = express();
var port = 3001;
    res.header('Access-Control-Allow-Origin', '*');
    res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE');
    res.header('Access-Control-Allow-Headers', 'Content-Type');
    next();
} 
app.use(allowCrossDomain)
// REST API
app.route("/Teachers")
    .post(controller.addTeacher)
app.listen(port, () => {
    console.log("Server is listening port "+port)
})
JQuery and HTML:
<form id="form1">
    <input type="text" placeholder="Name" name="name"/>
    <input type="text" placeholder="Email" name="email"/>
</form>
<button id="addTeacher1">Test</button>
    <script>
        $(function() {
            $("#addTeacher1").click(function() {
                var addons = $("#form1").serialize();
                $.post("http://localhost:3001/teachers",
                    addons
                ).done ( (data, status, jqxhr) => {
                    console.log("Done")
                }).fail( (jqxhr, status, error) => {
                    console.log("status= "+status+", error: "+error);
                });
        })
    })
</script>
req.body is undefined in console.log, so it seems like that server doesnt get data from HTML somehow. Any ideas?
edit : Here's the error I'm getting on browser console:
jquery-3.3.1.min.js:2 POST http://localhost:3001/teachers 500 (Internal Server Error)
And this is what I get in my CMD :
undefined
TypeError: Cannot read property 'name' of undefined
    at addTeacher (C:\Something\SERVER\controller.js:69:74)
That points to CONN.query row in controller.js
