ドットインストールでnode.jsを勉強中です。#12からのフォームを表示、1行掲示板を作ろうで最終動作がうまくいきません。
・読み込んだejsがすでに<li></li>が一つある。(先頭文字「・」が表示されている。
・フォームから入力して送信しても、「・」が増えるだけで文字が表示されない。
おそらく書き出しの部分ではなく、postsという配列に入れられていないのではないかと思っていますが、間違っている部分がわかりません。デベロッパーツール等でもエラーは出ていません。
どなたかご教授ください。
node.js・・・最新安定板
ドットインストール・・・https://dotinstall.com/lessons/basic_nodejs/26212から
bbs.ejs
1<!DOCTYPE html> 2<html lang="ja"> 3<head> 4 <tittle>BBS</tittle> 5 <meta charset = "utf-8"> 6</head> 7<body> 8 <form method="POST"> 9 <input type="text" name="name"> 10 <input type="submit" value="送信"> 11 <ul> 12 <% for (var i =0; i< posts.length; i++) { %> 13 <li><% posts[i] %></li> 14 <% } %> 15 </ul> 16</body> 17</html>
server.js
1var http = require('http') 2 fs = require('fs'), 3 ejs = require('ejs'), 4 qs = require('querystring'); 5var settings = require('./settings.js'); 6var server = http.createServer(); 7var template = fs.readFileSync(__dirname + '/public_html/bbs.ejs' , 'utf-8'); 8var posts = []; 9 10function renderForm(posts, res){ 11 var data = ejs.render(template,{ 12 posts : posts 13 }); 14 res.writeHead(200,{'Content-Type':'text/html'}); 15 res.write(data); 16 res.end(); 17} 18 19console.log(settings); 20 21 22 23server.on('request',function(req,res){ 24 if (req.method === 'POST'){ 25 req.date=""; 26 req.on("readable" , function(){ 27 req.data += req.read(); 28 }); 29 req.on("end" ,function(){ 30 var query = qs.parse(req.data); 31 posts.push(query.name); 32 renderForm(posts, res); 33 }); 34 }else{ 35 renderForm(posts, res); 36 } 37}); 38 39server.listen(settings.port, settings.host); 40console.log("Server lintening ...");
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/04/23 13:43
2019/04/23 13:47