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

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

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

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

JavaScript

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

Q&A

解決済

1回答

1203閲覧

node.jsの引数について(FS)

wp-h

総合スコア135

Node.js

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

JavaScript

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

0グッド

0クリップ

投稿2016/11/05 15:14

編集2016/11/05 15:52

###前提・実現したいこと
node.jsでサーバサイドのアプリケーションを作成しようとしています。
しかし、以下のコードの部分で理解に躓いてしまい、先に進めない状態になっております。

現在学習に使用している教材のソースなのですが、

function

1
doReadは定義した関数なのですが、第一関数のerrを削除し、 function doRead(data){ と変更を 加えると動かなくなってしまいます。 第一引数は使用していないのになぜ動かなくなってしまうのでしょうか? ###該当のソースコード ```var http = require('http'); var fs = require('fs'); var server = http.createServer(); server.on('request',doRequest); server.listen(8080); function doRequest(req,res){ fs.readFile('./hoge.html','UTF-8',doRead); function doRead(err,data){ res.setHeader('Content-type','text/html'); res.write(data); res.end(); } }

###試したこと
errの文字をtestにして起動すると動くので単純に第一引数があるかないかだけを判断しているのでしょうか?
javascriptについては入門書程度の知識があるつもりですが、どうにも納得がいかず。

###補足情報(言語/FW/ツール等のバージョンなど)
node.jsのバージョンはv7.0.0
OSはLinuxです。

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

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

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

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

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

kei344

2016/11/05 15:23

コードはそれぞれコードブロックで囲んでいただけませんか? ```(バッククオート3つ)で囲み、前後に改行をいれるか、コードを選択して「<code>」ボタンを押すとコードブロックになります。
kei344

2016/11/05 15:52

'''(カンマ3つ)ではなく ```(バッククオート3つ)です。記入エリアの右部分あたりにリアルタイムに結果が表示されていると思うので、そこを見ながら調整してください。
guest

回答1

0

ベストアンサー

書かれている doRead関数 は readFile関数に callback関数として渡すものと思います。つまり、readFile関数の中で引き数として渡した関数(質問文の例で言えばdoRead関数)が実行されます。実行時に第一引き数に渡すものがそもそも決まっているので、渡す関数(doRead関数)の引き数の数が合わないと動きません。

JavaScript

1function a ( callback ) { 2 callback( 1, 2 ); 3} 4function b ( x, z ) { 5 console.log( x ); // 1 6 console.log( z ); // 2 7} 8a( b ); 9a( function( m, n ) { 10 console.log( m ); // 1 11 console.log( n ); // 2 12} ); 13a( function( o ) { 14 console.log( o ); // 1 15} );

【File System | Node.js v7.0.0 Documentation】
https://nodejs.org/api/fs.html#fs_fs_readfile_file_options_callback

投稿2016/11/05 16:14

kei344

総合スコア69407

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

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

wp-h

2016/11/06 12:32

ありがとうございました。 例題のソースを実行し、納得することができました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問