Wednesday 15 March 2017

Can't for the life of me figure our how to retrieve POST json data from html (express)

i've been trying to figure this out for a few days. Nothing I've tried has worked at I'm sort of at a loss. Any help would be really appreciated. Code in question:todoapp/app.js:var express = require('express'); var app = express(); var hPage = require('./routes/index'); var path = require('path'); var fs = require('fs'); var bodyParser = require('body-parser'); var morgan = require("morgan"); app.use(express.static(path.join(__dirname, 'public'))); app.set('view engine', 'pug'); app.set('views', path.join(__dirname, 'views')); app.use(morgan('dev')); app.use(bodyParser.json()); app.use('/', hPage); app.listen(8888, function(){ console.log('server is listening on port 8888.') }); routes/index.js:var express = require('express'); var router = express.Router(); var mysql = require('mysql'); var connection = mysql.createConnection({ host: 'localhost', user: 'root', password: '', database: 'todo' }); connection.connect(function(err){ if(!err){ console.log('DB is connected.'); } else { console.log(err); } }); router.use(function(req, res, next){ console.log(req.method, req.url); next(); }); router.get('/', function(req, res, next){ res.render('index.pug') next(); }); router.post('/data', function(req, res){ if(req.body === undefined){ console.log('nothing was sent.'); res.status(500).send({error: 'baaaah'}) } else{ req.header("content-Type","application/json;charset=UTF-8") console.log(JSON.stringify(req.body.todoTxt)); res.end(); } }); module.exports = router; views/index.pug:doctype html html head title todo link(href='/stylesheets/style.css' rel='stylesheet') body form(method='post' action= '/data' enctype='text/plain') .add button.butt(onclick='handler.addTodo()' name='todoTxt' type='submit') |Add Todo input.entertext(type='text' name='todoTxt') .delete button.deleteTodoButt(onclick='handler.deleteTodo()') |Delete Todo input.deletetodo(type='text' placeholder='Enter todo position') div button.position(onclick='handler.toggleComplete()') |Toggle Complete input.togglecomplete(type='text' placeholder='Enter todo position') button.toggle(onclick='handler.toggleAll()') |Toggle All ul.todos script(src='/javascripts/main.js' type='text/javascript')

Submitted March 15, 2017 at 09:17PM by Chigurhshairdresser

No comments:

Post a Comment