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

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

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

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

Node.js

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

1535閲覧

node.jsでのフォーム処理のコードのエラー

chacopipi

総合スコア32

EJS

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

Node.js

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2019/12/29 11:04

ejs

1const http = require('http'); 2const fs = require('fs'); 3const ejs = require('ejs'); 4const url = require('url'); 5const qs = require('querystring'); 6 7const index_page = fs.readFileSync('./index.ejs','utf8'); 8const other_page = fs.readFileSync('./other.ejs', 'utf8'); 9const style_css = fs.readFileSync('./style.css', 'utf8'); 10 11var server = http.createServer(getFromClient); 12 13server.listen(3000); 14console.log('Server start!'); 15 16//ここまでメインプログラム================ 17 18//createSeverの処理 19function getFromClient(request, response){ 20 var url_parts = url.parse(request.url, true); 21 22 switch (url_parts.pathname) { 23 24 case '/': 25 response_index(request, response); 26 break; 27 28 case '/other': 29 response_other(request, response); 30 break; 31 32 case '/style.css': 33 response.writeHead(200,{'Content-Type': 'text/css'}); 34 response.write(style_css); 35 response.end(); 36 break; 37 38 default: 39 response.writeHead(200,{'Content-Type': 'text/plain'}); 40 response.end('no page...'); 41 break; 42 } 43} 44 45//Indexのアクセス処理 46function response_index(request, respons){ 47 var msg = "これはIndexページです。" 48 var content = ejs.render(index_page,{ 49 title: "Index", 50 content:msg, 51 }); 52 response.writeHead(200,{'Content-Type': 'text/html'}); 53 response.write(content); 54 response.end(); 55} 56 57//otherのアクセス処理 58funciton response_other(request, response){ 59 var msg = "これはOtherページです。" 60 61 //POSTアクセス時の処理 62 if (request.method == 'POST'){ 63 var body=''; 64 65 //データ受診のイベント処理 66 request.on('data', (data) => { 67 body +=data; 68 }); 69 70 //データ受診のイベント処理 71 request.on('end',() => { 72 var post_data = qs.parse(body); //データのパース 73 msg += 'あなたは、「' + post_data.msg + '」と書きました。'; 74 var content = ejs.render(oter_page, { 75 title:"Other", 76 content:msg, 77 }); 78 response.writeHead(200,{'Content-Type': 'text/html'}); 79 response.write(content); 80 response.end(); 81 }); 82 83 //GETアクセス時の処理 84 } else { 85 var msg = "ページがありません。" 86 var content = ejs.render(other_page, { 87 title:"Other", 88 content:msg, 89 }); 90 response.writeHead(200, {'Content-Type': 'text/html'}); 91 response.write(content); 92 response.end(); 93 } 94}

このコードで、

bash

1funciton response_other(request, response){ 2 ^^^^^^^^^^^^^^ 3SyntaxError: Unexpected identifier 4 at wrapSafe (internal/modules/cjs/loader.js:1055:16) 5 at Module._compile (internal/modules/cjs/loader.js:1103:27) 6 at Object.Module._extensions..js (internal/modules/cjs/loader.js:1159:10) 7 at Module.load (internal/modules/cjs/loader.js:988:32) 8 at Function.Module._load (internal/modules/cjs/loader.js:896:14) 9 at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12) 10 at internal/main/run_main_module.js:17:47 11

というエラーが出ました。
どこが間違っているのか何度見返してもわかりません。
どうかご回答の程お願いします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

SyntaxError: Unexpected identifier

funciton の typo ですね(ここに反応してエラーがでてます)。
function が正解です。

今の NodeJS は 安定版でも アロー関数 を使えますので、
エディタでも、const hoge = () => {}; のように書いてもいいかもしれません。

投稿2019/12/29 11:36

AkitoshiManabe

総合スコア5432

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

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

chacopipi

2019/12/29 11:46

ご回答どうもありがとうございます。 typoとは何のことでしょうか??
AkitoshiManabe

2019/12/29 11:50

「打ち間違え」 のことです。
chacopipi

2019/12/29 11:53

直したらできました!!! どうもありがとうございます!!!! これに1時間以上悩んでました笑  ありがとうございます!????
AkitoshiManabe

2019/12/29 11:57

シンタックスハイライトのある開発環境なら、色で見分けられますけど、 環境次第ではエディタを使わないとならないので、アロー関数を覚えるといいですよ。
chacopipi

2019/12/29 12:00

アロー関数ならProgateで習いました! 今は本に沿って学習しているので、変えずにコードを打っています!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問