const http = require('http'), fs = require('fs'), ejs = require('ejs'), qs = require('querystring'), sqlite = require('sqlite3'), template = fs.readFileSync(__dirname + '/public_html/bbs1.ejs', 'utf-8'), db = new sqlite.Database(__dirname + '/public_html/bbs.sqlite'), server = http.createServer(); function renderForm(db, res, msg = null) { db.all('select * from bbs', (err, posts) => { const data = ejs.render(template, { posts: posts, msg:msg }); res.writeHead(200, {'Content-Type': 'text/html'}); res.write(data); res.end(); }); } function insertData(query, db, res) { if(query.name !='' && query.comment != '') { db.run('insert into bbs (name, comment, data) values (?, ?, ?)', [query.name, query.comment, (new Date()).toLocaleDateString()]); renderForm(db, res); } else { renderForm(db, res, "名前とコメントを入力してください"); } } db.serialize(); db.run('create table if not exists bbs (id integer primary key autoincrement, name, text, comment text, date text)'); server.on('request', (req, res) => { if(req.method == 'POST') { let data = ""; req.on('data', x => data += x); req.on('end', () => insertData(qs.parse(data), db, res)); } else { renderForm(db, res); } }); server.listen(1337, 'localhost'); console.log("server listening...")