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

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

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

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

JavaScript

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

Q&A

2回答

6099閲覧

Nodejsでボタンをクリックしたときに要素が出るようなajaxを作りたい

spablock

総合スコア49

Node.js

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

JavaScript

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

0グッド

0クリップ

投稿2017/05/18 23:13

Nodejsでボタンをクリックしたときに要素が出るようなajaxを作りたいのですが、初心者なので
うまくいきません。

http://localhost:8124/hello_ajax.js
をブラウザで起動して、更新するとhellowとconsole.logが出てくるので、
ローカルサーバの場合、サーバ上でNodejsファイルを実行する方法は、htmlをブラウザで起動するのではなく、
実行したいJSファイルをブラウザで起動するという事で良いでしょうか?

htmlにすると下記のエラーが出てしまいうまくいきません。
http://localhost:8124/hello_ajax.html:1 GET http://localhost:8124/hello_ajax.html net::ERR_CONNECTION_REFUSED

このサイトにアクセスできません

localhost で接続が拒否されました。
localhost 8124 hello ajax を Google で検索してください
ERR_CONNECTION_REFUSED

・tree
C:.
│ hello_ajax.html
│ │
└─scripts
hello_ajax.js
server.js


ローカルサーバ

\nodejs\node-ajax\scripts>node test.js
Server running at http://localhost:8124/
hello

・ちなみにhtmlを別タブで起動してボタンを押すとサーバーエラーが発生しました。がでてきます。これはajaxのjsファイル自体はサーバ上で実行されている物の、サーバとの通信がうまくいっていないという意味でしょうか?

xhr.onreadystatechange = function() { // 4は通信成功 if (xhr.readyState === 4) { console.log('tuushinn'); // 0以外なら通信に成功 if (xhr.status === 200) { result.textContent = xhr.responseText; } else { result.textContent = 'サーバーエラーが発生しました。'; } } else { result.textContent = '通信中...'; } };

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

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

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

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

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

guest

回答2

0

Node.jsはApacheやIISと違い、HTTPサーバーではありません。JavaScriptエンジンです。という回答になるかと思いますが、このように言われても何の話かピンとこないかもしれません。
その場合、まずNode.jsとは何か、クライアント(Webブラウザ)とHTTPサーバー、静的コンテンツと動的コンテンツの違い等について、学習されることをお勧めします。
Node.jsには日本語化されたとてもよいチュートリアルがありますので、こちらを読みながら、ステップ・バイ・ステップで取り組んでみてはいかがでしょうか。

日本語版チュートリアル:Nodeビギナーズブック

ご参考になれば。

投稿2017/05/18 23:58

tkanda

総合スコア2425

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

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

spablock

2017/05/19 00:29

ありがとうございます。 私のコードや、ファイルの指定方法、ブラウザで起動するファイルが間違っているのではなく ローカルに立てたサーバ自体がcloud9でajaxやphpファイルを実行するとは根本的に違うものなので、 うまくいっていないという事なのですね・ ローカルのサーバは、cloud9と全く同じなのかなと思ったのですが、同じではないという事でしょうか? それともNodejsとphpが違うという事なのでしょうか?
tkanda

2017/05/19 01:18

Cloud9をご存知なら話が早いです。 Cloud9はベースになっているUbuntu仮想マシンに、プロジェクトテンプレートを自動展開することで様々な言語やフレームワークに最適化された開発環境を構築して使わせてくれるサービスですよね。 Cloud9のプロジェクトテンプレートの中に、Node.jsテンプレートとPHPテンプレートがありますね。 そしてPHPテンプレートのほうは「PHP,Apache&MySQL」と表示されているのがわかりますでしょうか。これはつまり、PHPテンプレートを展開するとWebサーバーとしてのApache、データベースとしてのMySQL、サーバーサイドWebアプリケーション開発言語としてのPHPが展開される事を意味しています。 一方のNode.jsテンプレートを選択した場合にはNode.jsとnpmパッケージマネージャだけが展開されます。Node.jsは既定の状態(インストールしただけの状態)では、Webサーバーやデータベースとしては動作しません。Node.jsを使ってWebアプリケーションを開発する場合、まずWebサーバーとしての基本となるブラウザとの通信機能、サーバー上のファイルの読み書き、データベースへのアクセスなどの機能をJavaScriptで自分でコーディングする必要があります。ブラウザからの要求に対して動的なページを生成して返信したり、サーバー上のHTMLファイルを読み出してその内容を返信したり、といった処理をすべて自分でコーディングする必要があるということです。実際にはそういう処理を助けてくれるアドオンパッケージを使えますが、どのパッケージを選択し、どのように組み立てて利用するか、というレベルから自分で考えて実装する必要があります。 Cloud9のPHPプロジェクトとNode.jsプロジェクトにはこのような違いがあります。
spablock

2017/05/19 01:33

やっぱりPHPはオワコン、文法がひどいのでやめたほうがいいといわれていても楽なんですね。rybyやpythonもそうなんでしょうか? つまり、Nodejsは変わっていて、これだけ、すべて自分でajaxを実行したいならそのためのファイルを作ってやらないといけないという特徴があるのでしょうか? つまり融通が利かずなんでも自分で作らないといけないがその分自由にカスタマイズが聞くげんじんようのサーバサイトの言語という事なんですかね?
spablock

2017/05/19 01:37

Cloud9でphpファイルの代わりにNodejsのjsファイルをそのまま代用すればできると考えているのですがもしかしてそうでもないのでしょうか? cloud9でnodejsで同じことをやりたいなら新しいアカウントを別途作って、 そこでnodejsを選択してそれからphpファイルと同じことをできるファイルをNodejsで作ってやらないとできないのですかね? それともまさかそれでもまだできずに、その他機能のファイルまで作らないとできないという事なのでしょうか? 其れですとあまりに大変ですね・
guest

0

既存の質問を未解決のままにして次から次へと新しい質問を投稿してないで、ちゃんと対応されてはいかがでしょうか?回答者様に失礼かと思いますし。(前のアカウントの時もそうでしたが。。。)

投稿2017/05/19 05:43

編集2017/05/19 06:02
harashow1701

総合スコア854

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問