質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
EJS

EJSは、JavaScript用のテンプレートエンジン。HTMLなどのテンプレートテキストにJavaScriptのロジックを記述することができます。また、変数・関数の実行をテンプレートテキスト内に埋め込むことも可能です。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

Express

ExpressはNode.jsのWebアプリケーションフレームワークです。 マルチページを構築するための機能セットおよびハイブリッドのWebアプリケーションを提供します。

Q&A

0回答

1370閲覧

node.js(Express)でのapp.js実行後、画面が白紙な件について

solli

総合スコア4

EJS

EJSは、JavaScript用のテンプレートエンジン。HTMLなどのテンプレートテキストにJavaScriptのロジックを記述することができます。また、変数・関数の実行をテンプレートテキスト内に埋め込むことも可能です。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

Express

ExpressはNode.jsのWebアプリケーションフレームワークです。 マルチページを構築するための機能セットおよびハイブリッドのWebアプリケーションを提供します。

0グッド

0クリップ

投稿2019/09/17 13:55

前提・実現したいこと

node.js(Express)で簡単な掲示板を作っています。 ※「Node.js 超入門 第二版-秀和システム」の第3章を参考にしています。

ejs、app.jsを作成後、サーバーを起動しましたがブラウザが白紙で表示されてしまいます。
コンソール上にエラーも出ていないので、はっきりとした原因がわかりません。

node.jsは全くの初心者な為、資料が不足しているかと思いますが
何かヒントなどを頂けたら嬉しいです・・・。

発生している問題・エラーメッセージ

エラーメッセージ エラーメッセージ:無 ### 該当のソースコード [app.js ↓] const http = require('http'); const fs = require('fs'); const ejs = require('ejs'); const url = require('url'); const qs = require('querystring'); const index_page = fs.readFileSync('./index.ejs', 'utf8'); const login_page = fs.readFileSync('./login.ejs', 'utf8'); const max_num = 10; const filename = 'mydata.txt'; var message_data; //データ? readFromFile(filename); var server = http.createServer(getFromClient); server.listen(3000); console.log('Server start!'); // ここまでメインプログラム ============= // createServerの処理 function getFromClient(request, response) { var url_parts = url.parse(request.url, true); switch (url_parts.pathname) { case '/': //トップページ response_index(request, response); break; case '/login': //ログインページ response_login(request, response); break; default: response.writeHead(200, {'Content-Type': 'text/plain'}); response.end('no_page...'); break; } } //loginのアクセス処理 function response_login(request, response){ var content = ejs.render(login_page, {}); response.writeHead(200, {'Content-Type': 'text/html'}); response.write(content); response.end(); } //indexのアクセス function response_index(request, response){ //POSTアクセス時 if(request.method == 'POST'){ var body =''; //データ受信時の処理 request.on('data', function (data) { body +=data; }); //データ受信終了時の処理 request.on('end', function() { data = qs.parse(body); addToData(data.id, data.msg, filename, request); write_index(request, response); }); } else { write_index(request, response); } } //indexのページ作成 function write_index(request, response) { var msg = "何かメッセージを書いてください"; var content = ejs.render(index_page, { title: 'Index', content: msg, data: message_data, filename: 'data_item', }); response.writeHead(200, {'Content-Type': 'text/html'}); response.write(content); response.end(); } //テキストファイルをロード function readFromFile(filename) { fs.readFile(filename, 'utf8', (err, data) => { message_data = data.split('\n'); }) } //データを更新 function addToData(id, meg, filename, request) { var obj = {'id':id, "msg":msg }; var obj_str = JSON.stringify(obj); console.log('add data: ' + obj_str); message_data.unshift(obj_str); if(message_data.length > max_num){ message_data.pop(); } saveToFile(filename); } //データを保存 function saveToFile(filename) { var data_str = message_data.join('\n'); fs.writeFile(filename, data_str, (err) => { if (err) {throw err; } }); } ### 試したこと ここに問題に対して試したことを記載してください。 ### 補足情報(FW/ツールのバージョンなど) ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問