Skip to content

Instantly share code, notes, and snippets.

@kiliankoe
Forked from clarle/app.js
Created May 7, 2014 21:15
Show Gist options
  • Save kiliankoe/e2b56a15a8d19e699b0e to your computer and use it in GitHub Desktop.
Save kiliankoe/e2b56a15a8d19e699b0e to your computer and use it in GitHub Desktop.
// Module dependencies
var express = require('express'),
mysql = require('mysql');
// Application initialization
var connection = mysql.createConnection({
host : 'localhost',
user : 'root',
password : 'password'
});
var app = module.exports = express.createServer();
// Database setup
connection.query('CREATE DATABASE IF NOT EXISTS test', function (err) {
if (err) throw err;
connection.query('USE test', function (err) {
if (err) throw err;
connection.query('CREATE TABLE IF NOT EXISTS users('
+ 'id INT NOT NULL AUTO_INCREMENT,'
+ 'PRIMARY KEY(id),'
+ 'name VARCHAR(30)'
+ ')', function (err) {
if (err) throw err;
});
});
});
// Configuration
app.use(express.bodyParser());
// Main route sends our HTML file
app.get('/', function(req, res) {
res.sendfile(__dirname + '/index.html');
});
// Update MySQL database
app.post('/users', function (req, res) {
connection.query('INSERT INTO users SET ?', req.body,
function (err, result) {
if (err) throw err;
res.send('User added to database with ID: ' + result.insertId);
}
);
});
// Begin listening
app.listen(3000);
console.log("Express server listening on port %d in %s mode", app.address().port, app.settings.env);
<!doctype html>
<html>
<head>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$('#user-submit').click(function () {
var payload = {
name: $('#user-name').val()
};
$.ajax({
url: "/users",
type: "POST",
contentType: "application/json",
processData: false,
data: JSON.stringify(payload),
complete: function (data) {
$('#output').html(data.responseText);
}
});
});
});
</script>
</head>
<body>
<h3>Enter a username to enter into the database:</h3>
<input id="user-name" type="text" />
<input id="user-submit" type="submit" />
<p id="output"></p>
</body>
</html>
{
"name": "reddit-node-mysql"
, "description": "A demo of how to use Express and MySQL together"
, "author": "Clarence Leung <github@clarle>"
, "version": "0.0.1"
, "private": true
, "dependencies": {
"express": "~2.5",
"mysql": "~2.0"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment