\r\n \r\n \r\n \r\n\r\n\r\n\r\n```\r\n\r\n###試したこと\r\n\r\n```\r\n\r\nnodeのソースコードを見て\r\n括弧の記述方法のルールを探して\r\n\r\n }\r\n});\r\n\r\nを書いたり消したりした。\r\n\r\n```\r\n\r\n\r\n\r\n###補足情報(言語/FW/ツール等のバージョンなど\r\n\r\n```\r\n\r\nテキストエディタはAtomを使っています。\r\n\r\n```","answerCount":6,"upvoteCount":0,"datePublished":"2016-05-30T04:52:01.179Z","dateModified":"2022-01-12T10:55:45.698Z","suggestedAnswer":[{"@type":"Answer","text":"まずはインデントを揃えるようにしましょう。\r\nきれいに揃っていれば、括弧との対応がわかりやすくなります。\r\n\r\nまた、対応する括弧をハイライトしてくれるプラグインを活用するなど\r\nコーディングミスの出にくい環境を作ることも重要かと思います。\r\nAtomエディタだと[bracket-matcher](https://atom.io/packages/bracket-matcher)などがあるようです。\r\n\r\n↓インデントを整えてみました。\r\n`function doRequest(req, res) {`に対応する閉じ括弧がないことがわかります。\r\n\r\n```javascript\r\n// リクエストの処理\r\nfunction doRequest(req, res) {\r\n\tfs.readFile('./chat.html', 'UTF-8', function(err, data) {\r\n\t\tres.writeHead(200, {'Content-Type': 'text/html'});\r\n\t\tres.write(data);\r\n\t\tres.end();\r\n\t});\r\n\r\n\tio.socket.on('connection', function(socket){\r\n\t\tsocket.emit('greeting', {message: 'hello'}, function (data){\r\n\t\t\tconsle.log('result;' + data);\r\n\t\t});\r\n\t});\r\n\r\n```","dateModified":"2016-05-30T05:10:20.165Z","datePublished":"2016-05-30T05:10:20.165Z","upvoteCount":0,"url":"https://teratail.com/questions/36412#reply-57926","comment":[]},{"@type":"Answer","text":"`function doRequest`の波括弧の閉じがありませんね。`res.end();`の2行下に`}`を加えると動くかと思います。\r\n\r\nJavaScriptでは、括弧の開きと閉じはかならずペアで存在します。ですから、ソースコードを書く時は先頭から順に打つのではなく、`function hoge(){}`というふうに先に閉じ括弧まで書いてしまってから中身を書く、そして括弧の階層ごとにインデント(行の左端のTabやスペース)を揃える、ということを意識すると、括弧の対応が崩れにくくなるかと思います。\r\n\r\nAtomには、対応する括弧を表示する機能があります。開き括弧または閉じ括弧にカーソルを合わせると、Atomが対応すると判断した括弧に下線を表示してくれますから、それらも意識しながらコーディングをすると良いかもしれません。\r\n\r\nご参考になれば幸いです。","dateModified":"2016-05-30T05:05:14.706Z","datePublished":"2016-05-30T05:05:14.706Z","upvoteCount":0,"url":"https://teratail.com/questions/36412#reply-57924","comment":[]},{"@type":"Answer","text":"最後に「}」が足りてないように見えますが・・・\r\n```javascript\r\nvar http = require('http');\r\nvar fs = require('fs');\r\n\r\nvar server = http.createServer();\r\nserver.on('request', doRequest);\r\nserver.listen(1234);\r\nconsole.log('Server running!');\r\n\r\n// リクエストの処理\r\nfunction doRequest(req, res) {\r\n fs.readFile('./chat.html', 'UTF-8', function(err, data) {\r\n res.writeHead(200, {'Content-Type': 'text/html'});\r\n res.write(data);\r\n res.end();\r\n });\r\n\r\n io.socket.on('connection' , function(socket){\r\n socket.emit('greeting' , {message: 'hello'}, function (data){\r\n consle.log('result;' + data);\r\n });\r\n });\r\n} // ここに「}」が足りてない\r\n```","dateModified":"2016-05-30T05:05:06.069Z","datePublished":"2016-05-30T05:05:06.069Z","upvoteCount":0,"url":"https://teratail.com/questions/36412#reply-57923","comment":[]},{"@type":"Answer","text":"関係ないかもしれませんが。\r\n```JavaScript\r\n// consle.log('result;' + data);\r\n// ↓\r\nconsole.log('result;' + data);\r\n```","dateModified":"2016-05-30T05:02:19.444Z","datePublished":"2016-05-30T05:02:19.444Z","upvoteCount":0,"url":"https://teratail.com/questions/36412#reply-57922","comment":[]},{"@type":"Answer","text":"chatt.jsの最後の\r\n```javascript\r\n});\r\n```\r\nを\r\n```javascript\r\n}\r\n```\r\nにするのはどうでしょうか。","dateModified":"2016-05-30T05:01:33.701Z","datePublished":"2016-05-30T05:00:58.779Z","upvoteCount":1,"url":"https://teratail.com/questions/36412#reply-57920","comment":[{"@type":"Comment","text":"ああ、間違えました……","datePublished":"2016-05-30T05:02:52.981Z","dateModified":"2016-05-30T05:02:52.981Z"}]},{"@type":"Answer","text":"25行目の下に中括弧を閉じ忘れています。\r\n\r\n初心者のうちはAtomよりお金払ってでもWebStormなどのIDEを使ったほうがいいと個人的には思います。\r\n括弧を自動補完してくれたり、Syntaxエラーになるところに赤線が引かれたりするので便利です。\r\n(Atomでもプラグインを入れれば結構いい環境作れると思いますが、そのプラグインを入れる作業が敷居が高いと思います)\r\nhttps://www.jetbrains.com/webstorm/","dateModified":"2016-05-30T05:00:50.015Z","datePublished":"2016-05-30T05:00:50.015Z","upvoteCount":0,"url":"https://teratail.com/questions/36412#reply-57919","comment":[]}],"breadcrumb":{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"トップ","url":"https://teratail.com"},{"@type":"ListItem","position":2,"name":"JSONに関する質問","url":"https://teratail.com/tags/JSON"},{"@type":"ListItem","position":3,"name":"JSON","url":"https://teratail.com/tags/JSON"}]}}}
質問するログイン新規登録
JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

Node.js

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

Socket.IO

Socket.IOはNode.js上で動くライブラリであり、すべてのブラウザとモバイルデバイスでリアルタイムのアプリを作動させる事を目的としています。

JavaScript

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

6回答

5868閲覧

javascript 括弧の使い方がわからない。ターミナル上でのエラー「SyntaxError: Unexpected」どこが記述ミスなのか分からない

7ppm

総合スコア12

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

Node.js

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

Socket.IO

Socket.IOはNode.js上で動くライブラリであり、すべてのブラウザとモバイルデバイスでリアルタイムのアプリを作動させる事を目的としています。

JavaScript

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2016/05/30 04:52

0

0

###前提・実現したいこと

nodeとsocketでチャットシステムを作りたいと思っています。 括弧の記述ミスがあると思われるのですが、 どこに、どういう括弧を記述すればいいのか、 ミスがあるのか、わかりません。経験不足です。 chat.js:25というエラー内容から、 chat.jsの25行目で括弧がなかったり 括弧が余分に多かったりするんじゃないかなと思うのですが・・・ わかりやすく説明できずに申し訳ありません。

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

このコードで、ターミナル上で ndoe chat.js と実行すると以下のようなエラーが発生します。

/Desktop/javascript_sample/チャットチャレンジ/chat.js:25 }); ^ SyntaxError: Unexpected token ) t exports.runInThisContext (vm.js:53:16) at Module._compile (module.js:373:25) at Object.Module._extensions..js (module.js:416:10) at Module.load (module.js:343:32) at Function.Module._load (module.js:300:12) at Function.Module.runMain (module.js:441:10) at startup (node.js:139:18) at node.js:968:3

###該当のソースコード

chatt.js

var http = require('http'); var fs = require('fs'); var server = http.createServer(); server.on('request', doRequest); server.listen(1234); console.log('Server running!'); // リクエストの処理 function doRequest(req, res) { fs.readFile('./chat.html', 'UTF-8', function(err, data) { res.writeHead(200, {'Content-Type': 'text/html'}); res.write(data); res.end(); }); io.socket.on('connection' , function(socket){ socket.emit('greeting' , {message: 'hello'}, function (data){ consle.log('result;' + data); }); });

chat.html

<html> <hrad> <title>チャットする</title> <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script> <script src="/socket.io/socket.io.js"></script> <script src="/javascript/chat.js"></script> <script> <body> <!-- 送るボタンだよ --> <input type="text" id="msg_input" style="wibth:200px;" /> <button onclick="publishMessage()">語る</button> </body> <script type= "text/javascript"> //イベントとcall backの定義 var socketio = io.connect('http://localhost:1234'); socket.on('msg', function(socket){ log('ここまでクリアだよ!'); socket.emit(msg send,{message, 'data'}); socket.on('msg push', function(msg){ log(ここまでクリアだよ!); }); }); </script> </html>

###試したこと

nodeのソースコードを見て 括弧の記述方法のルールを探して } }); を書いたり消したりした。

###補足情報(言語/FW/ツール等のバージョンなど

テキストエディタはAtomを使っています。

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

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

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

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

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

guest

回答6

0

chatt.jsの最後の

javascript

1});

javascript

1}

にするのはどうでしょうか。

投稿2016/05/30 05:00

編集2016/05/30 05:01
Lhankor_Mhy

総合スコア37634

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

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

Lhankor_Mhy

2016/05/30 05:02

ああ、間違えました……
guest

0

まずはインデントを揃えるようにしましょう。
きれいに揃っていれば、括弧との対応がわかりやすくなります。

また、対応する括弧をハイライトしてくれるプラグインを活用するなど
コーディングミスの出にくい環境を作ることも重要かと思います。
Atomエディタだとbracket-matcherなどがあるようです。

↓インデントを整えてみました。
function doRequest(req, res) {に対応する閉じ括弧がないことがわかります。

javascript

1// リクエストの処理 2function doRequest(req, res) { 3 fs.readFile('./chat.html', 'UTF-8', function(err, data) { 4 res.writeHead(200, {'Content-Type': 'text/html'}); 5 res.write(data); 6 res.end(); 7 }); 8 9 io.socket.on('connection', function(socket){ 10 socket.emit('greeting', {message: 'hello'}, function (data){ 11 consle.log('result;' + data); 12 }); 13 }); 14

投稿2016/05/30 05:10

rkojima

総合スコア421

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

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

0

function doRequestの波括弧の閉じがありませんね。res.end();の2行下に}を加えると動くかと思います。

JavaScriptでは、括弧の開きと閉じはかならずペアで存在します。ですから、ソースコードを書く時は先頭から順に打つのではなく、function hoge(){}というふうに先に閉じ括弧まで書いてしまってから中身を書く、そして括弧の階層ごとにインデント(行の左端のTabやスペース)を揃える、ということを意識すると、括弧の対応が崩れにくくなるかと思います。

Atomには、対応する括弧を表示する機能があります。開き括弧または閉じ括弧にカーソルを合わせると、Atomが対応すると判断した括弧に下線を表示してくれますから、それらも意識しながらコーディングをすると良いかもしれません。

ご参考になれば幸いです。

投稿2016/05/30 05:05

kxphotographer

総合スコア37

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

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

0

最後に「}」が足りてないように見えますが・・・

javascript

1var http = require('http'); 2var fs = require('fs'); 3 4var server = http.createServer(); 5server.on('request', doRequest); 6server.listen(1234); 7console.log('Server running!'); 8 9// リクエストの処理 10function doRequest(req, res) { 11 fs.readFile('./chat.html', 'UTF-8', function(err, data) { 12 res.writeHead(200, {'Content-Type': 'text/html'}); 13 res.write(data); 14 res.end(); 15 }); 16 17 io.socket.on('connection' , function(socket){ 18 socket.emit('greeting' , {message: 'hello'}, function (data){ 19 consle.log('result;' + data); 20 }); 21 }); 22} // ここに「}」が足りてない

投稿2016/05/30 05:05

orange0190

総合スコア1698

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

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

0

関係ないかもしれませんが。

JavaScript

1// consle.log('result;' + data); 2// ↓ 3console.log('result;' + data);

投稿2016/05/30 05:02

kei344

総合スコア69643

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

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

0

25行目の下に中括弧を閉じ忘れています。

初心者のうちはAtomよりお金払ってでもWebStormなどのIDEを使ったほうがいいと個人的には思います。
括弧を自動補完してくれたり、Syntaxエラーになるところに赤線が引かれたりするので便利です。
(Atomでもプラグインを入れれば結構いい環境作れると思いますが、そのプラグインを入れる作業が敷居が高いと思います)
https://www.jetbrains.com/webstorm/

投稿2016/05/30 05:00

yohira0616

総合スコア257

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

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

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

ただいまの回答率
85.29%

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

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

質問する

関連した質問