1 名前:デフォルトの名無しさん mailto:sage [2011/07/08(金) 10:12:15.70 ] pythonやrubyやPHPと同じ土俵でjavascriptが使えるようになりました。 サーバサイドjavascriptについて語りましょう。 javascriptはrubyと比較してもかなり速い shootout.alioth.debian.org/u32/benchmark.php?test=all&lang=v8&lang2=yarv Rhino - JVM上で実行できる処理系 https://developer.mozilla.org/ja/Rhino node.js - googleが開発したV8エンジン上で実行できる処理系 nodejs.org/
233 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 17:51:35.34 ] node.jsでは正規表現使えない? b = a.match(/[0-9a-zA-Z_]/);でエラーが出るんだが
234 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 18:01:46.49 ] >>233 勿論、使える それと、/[0-9a-zA-Z_]/ としたいなら、/\w/ って書いたら? エラーが出たのならエラー内容を書かないとわからないよ 正規表現についての質問は、他のスレでね
235 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 18:07:58.71 ] こんなエラー Error: Object #<Object> has no method 'match'
236 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 18:15:00.41 ] >>235 考えられる原因は、変数 a が String ではない もしかして、ファイルを読み込んで、それを正規表現で判定してる? fs.readFile() 等で取得できる data は、String じゃなくて Buffer だから、data.toString('utf8') して String に変える必要があるよ
237 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 19:01:05.66 ] >>233 はマルチ臭いぞ + JavaScript の質問用スレッド vol.93 + toro.2ch.net/test/read.cgi/hp/1323498887/ 68 :Name_Not_Found:2011/12/14(水) 18:01:25.16 ID:??? IEで正規表現は使えない? matchでエラーが出るんだけど 70 :Name_Not_Found:2011/12/14(水) 18:13:30.97 ID:??? <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>ServerSentEvent</title> </head> <body> <script type="text/javascript"> var a = { comments: 'kom' }; var b = a.match(/[0-9a-zA-Z_]/); document.write(b); document.write(a); </script> </body> </html> IE9で上記のHTMLを起動するとmatchが云々言われる www.dotup.org/uploda/www.dotup.org2380051.png
238 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 19:41:18.31 ] Rhinoとかnode.jsとかいろいろあるみたいですが、実装が違うだけで言語仕様は同じものなんですか? 基本的には同じだけどそれぞれ拡張されていて方言があるとかですか? 中身以前の質問ですみません
239 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 22:59:04.91 ] >>238 言語仕様があるという考えよりもブラウザごとに実装してるポイントが違うので その最小公約数が Common.js みたいな捉え方を俺はしているが… サーバーサイドのjsはまたちょっと違うから rhino はサーバーサイドなのか? Javaでやるなら tomcat とか使いそうな印象があるが…ちょっと俺は知識不足で 上手く説明できないんだけど…
240 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 23:04:33.72 ] 最大公約数: greatest common divisor 最小公倍数: least common multiple 最大公約数の間違いだな。ボケてますな駄目ですな…
241 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 23:17:41.60 ] どちらかといえば最小公倍数だと思うが
242 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 23:25:45.60 ] 最大公倍数だお
243 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 23:46:58.89 ] function push(x){ var com = x; return com;} これでサーバーサイドに送り http.createServer(function (req, res) { if(req.method=='POST') { var body=''; req.on('data', function (data) { body +=data; console.log(body); var str = new String(qs.parse(body)); var reg = /comments=(\S*)/; var x = str.match(reg); console.log(x); a = data; }); こちらで受け取ります console.logを見ると comments=○○ //○○は受け取った変数 null となります. どうにかして○○の部分を抜き出せないでしょうか?
244 名前:238 mailto:sage [2011/12/15(木) 07:49:46.57 ] どうもありがとうございますm(_ _)m
245 名前:デフォルトの名無しさん mailto:sage [2011/12/15(木) 18:15:24.58 ] var express = require('express'); var app = express.createServer(); app.use(express.bodyParser()); app.post('/', function(req, res){ console.log(req.body); var str = new String(req.body); var reg = /{(\S*):\s'(\S*)'/; var x = str.match(reg); console.log(x[2]); res.send(''); }); app.listen(3000); 上記を起動し curl -d hoge=node localhost:3000/ と入力すると console.log(x[2]); の部分でエラーが起こります。 解決方法はないですか?
246 名前:デフォルトの名無しさん [2011/12/15(木) 18:35:13.70 ] var str = new String("hoge=node"); これ実際に動かしてみろよ
247 名前:デフォルトの名無しさん mailto:sage [2011/12/15(木) 21:03:22.26 ] >>246 www.dotup.org/uploda/www.dotup.org2384257.png 同じようにエラーが出ます
248 名前:デフォルトの名無しさん mailto:sage [2011/12/15(木) 21:09:20.47 ] matchをstring以外に使ってエラーが出たとマルチポストしてた人か
249 名前:デフォルトの名無しさん mailto:sage [2011/12/15(木) 21:14:43.29 ] このerrorさえ取り除ければなんとかなると思うんです
250 名前:デフォルトの名無しさん [2011/12/15(木) 21:22:33.52 ] >>247 テメーの書いた正規表現がクソ hoge=nodeにマッチしないからxがnullになって落ちる あとnew String(req.body)を使うより'' + req.bodyのほうが3倍速い
251 名前:デフォルトの名無しさん mailto:sage [2011/12/15(木) 21:29:36.81 ] Node.js のサイトがリニューアルしたな v1 リリースも近いのかな
252 名前:デフォルトの名無しさん mailto:sage [2011/12/15(木) 21:35:27.63 ] >>250 5行目の console.log(req.body); を見ると {}hoge: 'node'} となっているので var reg = /{(\S*):\s'(\S*)'/; としたのですがダメなのですか?
253 名前:デフォルトの名無しさん mailto:sage [2011/12/15(木) 21:39:39.01 ] >>252 試しに、console.log(String(req.body)); と打ってごらん。それが答えだ
254 名前:デフォルトの名無しさん mailto:sage [2011/12/15(木) 21:46:37.58 ] 出来ました けどObjecktと表示されてしまいますね・・・ どうにかならないでしょうか?
255 名前:デフォルトの名無しさん mailto:sage [2011/12/15(木) 21:55:33.65 ] >>252 ああ、expressを使ってるから飛んできた時点でもうオブジェクトになってんのか それならわざわざ文字列にして正規表現を使うまでもなく、req.body.hogeだけでいいだろ
256 名前:デフォルトの名無しさん mailto:sage [2011/12/15(木) 21:57:31.92 ] >>254 { hoge: 'node' } の中身、"node" の部分を取得したいのなら console.log(req.body.hoge); // 'node' それと、Node.js をはじめる前に、もう少し JavaScript を知ったほうがいいよ
257 名前:デフォルトの名無しさん mailto:sage [2011/12/15(木) 22:02:01.13 ] 最近流行りなのかJavaScriptをろくに知らない人がnodeをはじめる。 いいことだけどめんどくさいな。 >>250 はやいけど、newなしのString(str)のほうが見た目分かりやすいと思うが。
258 名前:デフォルトの名無しさん mailto:sage [2011/12/15(木) 22:52:39.51 ] php使いだけどnode.jsにするとどのような恩恵があるのですか?
259 名前:デフォルトの名無しさん mailto:sage [2011/12/15(木) 23:30:20.06 ] >>258 phpで表、node.jsで裏の作業すると捗ります。 node.jsでスクレイピングとかはやめてください。 そのうちpregや再帰が使えないとか愚痴り始めるので。
260 名前:デフォルトの名無しさん mailto:sage [2011/12/15(木) 23:33:46.10 ] >>259 さんどうもありがとうございます リアルタイムな通信に利用はしたいと思っているのでnode.jsは使いたいのですが phpに出来てnode.jsで実現できないようなことがなければnode.jsのみで構築する事も検討したいのです 全般的にはphpに取って代わるような使い方にはnode.jsは不向きと捉えてよいでしょうか?
261 名前:245 mailto:sage [2011/12/16(金) 00:11:23.51 ] もしかしてapp.postで受け取ったものはapp.postの外に持ち出せない?
262 名前:デフォルトの名無しさん mailto:sage [2011/12/16(金) 00:12:41.53 ] >>260 すみません。真面目に答えますね…。 まだ発展途上なのでなんとも言えませんが、 基本的にjavascriptそのままなので、phpのような表示は得意とは言えません。 ただjsdomなどHTMLを扱うライブラリはあります。 nodeはクライアント側jsのajaxのように、イベントリスナでつなぎます。 そしてhttpサーバを介さずスクリプト(node)がhttpサーバーとして、 直接個々のリクエストに答えますので、 httpの特定のURLのアクセスをトリガとするphpとは使い勝手が全く異なります。 非同期処理であれば真価を発揮しますが、逆にそれが必要でないなら、 php+apacheなどの方が楽に構築できると思われます。
263 名前:デフォルトの名無しさん mailto:sage [2011/12/16(金) 00:21:36.44 ] >>262 ご親切な対応ありがとうございます リアルタイム名部分のみnode.jsに任せて それ以外の部分はphpを使ってみます
264 名前:デフォルトの名無しさん mailto:sage [2011/12/16(金) 12:57:19.46 ] まさか、Node.js を CGI とかそんな形で使おうとしてないよな Node.js 上で PHP を使おうとか。出来なくはないが・・・ 思い過ごしならいいけど
265 名前:デフォルトの名無しさん mailto:sage [2011/12/16(金) 13:02:08.93 ] nodejs上でphpというnpmはあったとは思うがw
266 名前:デフォルトの名無しさん [2011/12/16(金) 18:31:35.87 ] v0.6.6
267 名前:デフォルトの名無しさん mailto:sage [2011/12/16(金) 19:30:13.67 ] ejs内にjavascriptのコードを書いてみたけど実行されない そういうものですか? ejsを表示させると共に文字を記入くれって表示させたいんだけど
268 名前:デフォルトの名無しさん mailto:sage [2011/12/16(金) 20:23:03.15 ] >>261 外っていうのは、ブロックの外? どこかわからないけど、持ち出すことは出来るはず >>267 どんなのを書いたか教えて
269 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 12:48:05.58 ] 【ウェブアプリケーションという不幸 】 現在、多くのプログラマ(素人)が ウェブアプリケーションというものが ベストな正しい方向だと勘違いしている。 ソフトウェアの作るにおいて そのアプリケーションに応じた 状態遷移を実装するというのは 基本中の基本である。 その点においてウエブブラウザという ある状態遷移が実装されているアプリケーションの上に また別のアプリケーションを実装するのは 論外である。 そこまでするなら普通にアプリケーションを実装 してダウンロードして使って もらえばいいのである。 ウェブアプリケーションとは 虚構にしか他ならない。 ウェブアプリケーションを 作ろうとしているあなた。 今すぐ普通のアプリケーション とし設計し始めては いかがだろう。 そうすればきっと後悔しないですむ。
270 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 12:48:33.81 ] HTMLやHTTPを悪者にはしていない。 TCP/IPができあがり、その応用として、ファイルを送ったりするようになった。 ファイルの中身のテキストにデータ構造をもたせ、それはつまりツリー構造なわけだが その実装としてのハイパーテキスト、つまりHTMLという送る側と送られる側で決め事(プロトコル) をつくり、画像や音楽など表現の幅を広げることは当然の成り行きだっただろう。 そして、その送る側としてのHTMLファイルサーバ、つまりWebサーバ、送られる側としてのプロトコルの解釈・表示系としての ブラウザというアプリケーション。 ここまではいい。 だが、そこから先が素人の発想というか、いそがばまわれを忘れた者の愚かな発想。 つまりブラウザ上で、アプリケーションを動かすという発想なのである。 ブラウザというのは、おくられてきたステートレスな通信内容の一瞬の表示手段でしかない。 つまりアプリケーションのためのひとつのパーツなのである。 Windowsでいえば、コントロールのひとつ。(実際WebBrowserというコントロールがある。)JavaならWebClietnだ(これは、ブラウザではないが。)。 包含関係が逆なのである。 ブラウザ上にアプリケーションを作るのは愚かなブームである。
271 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 13:26:02.94 ] これがWEBプログラミングの出来ない者の嫉妬ってやつだ
272 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 13:27:37.76 ] marutiotu toro.2ch.net/test/read.cgi/hp/1323498887/158-159
273 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 13:32:27.09 ] >>268 <html> <head> <title>chat</title> <script type="text/javascript"> var name; function func(){ while (name == "" || name == "null"){ name = window.prompt("名前を入力してください", ""); }; document.write(name); }; </script> </head> <body> <h1>test</h1> <%= name %><br /> <form method="POST" action="/"> func(); <input type="text" name="name" id="name"/> <input type="submit" /> </form> </body> </html> こんなのを書きました
274 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 15:09:16.77 ] >>273 "null" を null に
275 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 16:31:47.00 ] >>270 はいはい、SSH端末とブラウザは同じレイヤーのもの。 SSH端末でネットのむこうのアプリを使うように ブラウザでも使う。あとは向こうで続きをやろうなw
276 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 16:47:43.51 ] ↑なにこいつw
277 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 17:11:00.05 ] >>276 コピペ野郎の相手なんて この程度で十分だろ
278 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 17:26:26.33 ] >>276 かまっちゃだめ。 ちょっとやばいからそいつ。
279 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 17:34:41.33 ] 自演乙
280 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 17:34:43.37 ] >>275 キモッ
281 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 17:38:54.37 ] >>275 荒すなよキモイ奴
282 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 18:07:12.44 ] >>273 >>274 で、null の書き方を指摘したけど それ以前に、どこにも func() を呼び出すものがない 他にもあるけど、JavaScript の質問スレに行ったほうがいい
283 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 18:25:20.88 ] >>282 ということはejsでもjavascriptが利用可能ってことですね
284 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 18:25:47.24 ] 正式名称はnode.jsなの?それともNode.js? 正しくはNodeなんて書いてあるブログもあるけど、本当は何?
285 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 18:29:59.97 ] node.js
286 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 18:42:15.35 ] >>284 「そもそも "Node" なの? "Node.js" じゃないの? 当初は "Node.js" と呼ばれていましたが、 「正式名称は "Node" である。ただし曖昧さが出る場合は "Node.js" と表記しても良い」 という旨の記述が本家の Wiki にあります。」 blog.nodejs.jp/2011/10/node.html
287 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 18:52:03.26 ] チャットが作りたいのですが非同期通信のシンプルな程シンプルなサンプルみたいなのどこかにありませんか?
288 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 19:09:51.67 ] >>287 手軽に試すなら Socket.IO を使うといいよ サンプルもそのサイトに書いてあるし、とても短いコード socket.io/
289 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 21:08:51.07 ] node.jsのサンプルと言えばチャットというくらい サンプルある githubにも、すぐ動くのがあったし、手元の本でもテスト駆動javascriptのサンプルでチャットが載ってた
290 名前:287 mailto:sage [2011/12/17(土) 22:13:10.02 ] express+socket.ioを入れてサンプルコピペでできました
291 名前:287 mailto:sage [2011/12/17(土) 23:01:26.74 ] でもサイトを作るごとにnpmでexpressとsocket.ioを入れるのって無駄なんですが windowsなのでnode.exeの本体が置いてある所に最初npmでexpressとsocket.ioをインストール済みなんですよ
292 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 16:12:58.02 ] >>285-286 レスありがとうございます。あと、遅れてすみません 曖昧さを避けるために .js をつけているんですか、知りませんでした
293 名前:デフォルトの名無しさん mailto:sage [2011/12/20(火) 09:39:49.16 ] >>227 find . -iname xxx\*
294 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 19:13:20.74 ] node.jsはwebサーバソフトウェアですか?
295 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 22:44:11.51 ] webサーバソフトウェアってなんですか?
296 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 00:25:03.81 ] apacheにはWebサーバソフトウェアとあるので同じものではないのですか?
297 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 08:27:37.77 ] >>296 微妙だがNodeは違うと思う apacheはソフトウェアだね
298 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 08:30:13.02 ] >>1 が読めないのか
299 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 08:51:08.99 ] >>296 Web アプリケーションサーバではありません。 Apache, Nginx のような HTTP サーバ実装でもなければ、Tomcat のようなアプリケーションサーバでもありません。 Node はあくまでサーバサイドで JavaScript を動かす実行環境です。
300 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 08:52:36.67 ] >>298 >>1 のどこに答えが書いてあるん?
301 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 08:56:40.84 ] >>299 そこまで言って置いてそれは無いわ。 サーバーサイドである必要すら無いんだから。
302 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 10:32:37.77 ] >>301 はぁ?>>299 はnode.js日本サイトblogの転記だぞ? それすら否定すんの? それと「あくまで」サーバーサイドだから 一体どんな回答が欲しいんだよ…
303 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 10:36:55.14 ] >>302 のURLね blog.nodejs.jp/2011/10/node.html もう、これテンプレに入れたら?
304 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 11:28:06.26 ] Web アプリケーションサーバでなければなんて呼べばいいんだ?
305 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 11:52:42.42 ] >>304 正直どうでもいいし何でもいいけど、論理的な決まりとしては サーバーサイドでJavaScriptを動かす実行環境 node.jsでアプリを作って稼働させても根本的概念は変わらない
306 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 16:33:40.14 ] JavaScriptをサーバとして動かすためにのnode.jsってことでいいの?
307 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 16:34:35.24 ] >JavaScriptをサーバとして動かすためにのnode.jsってことでいいの? 修正 JavaScriptをサーバとして動かすためのnode.jsってことでいいの?
308 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 17:31:52.91 ] >>307 全然違くてワロタww クライアントでJavaScript動かす時は基本的にブラウザ上で動くだろ? Nodeはサーバー上で動くJavaScript ただそれだけ だからアプリケーションサーバーやサーバーソフトウェアじゃないのだよ 技術者ですら、これだけ理解できないのだから 営業には全く理解できないだろうなw
309 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 17:36:58.15 ] ここはnode.jsのことばかりだけどstandard i/o可能なjsやrhino jsの話題でもいいの? と言ってもさしあたり話題にするようなネタはないけど
310 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 17:42:27.13 ] >>308 んじゃサーバはどこに行くんだよってなるぜ
311 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 17:50:51.59 ] node.jsは特定のサーバーからは独立した単独のスクリプティング環境。 rubyとかperlとかpythonとかと同じ。 node.jsの実体はスタンドアロンのスクリプト実行環境に過ぎないからローカルのシェルスクリプトとして使うこともcgiとして呼び出すことも可能だろう。 ただ開発の方向にしても主な用途にしてもあくまで組み込みのhttpサーバーライブラリを使ってサーバーを組み立てることを想定してるけどな。 一言でいうならnode.jsとはブラウザの中で実行されるのが普通のjavascript処理系をスタンドアロンのスクリプト実行環境にして、そこに組み込みのサーバーライブラリやローカルスクリプトとして必要なIOその他のライブラリをくっつけたもの。
312 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 18:02:01.10 ] あと、わからない言ってる人はハードウェアとしてのサーバーとソフトウェアとしてのサーバーの区別がついてないんじゃないかな…
313 名前:308 mailto:sage [2011/12/22(木) 18:10:02.19 ] >>310 >>311 の通りだ サーバー上で動いてる以上サーバーはどこに行くんだよ?なんて考え方はないだろ >>308 と>>311 をよく読め
314 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 18:49:50.06 ] node.jsでプロキシ経由で外部サイトにアクセスってできますか?
315 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 19:07:11.81 ] WSHのJScriptをウェブサーバ用途に特化させたみたいな?と思っとけばいいんすか?
316 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 20:31:18.42 ] >>315 それが今まででは一番近い理解かも知れない Webサーバ用途に特化…というと微妙に誤解を招く書き方なので サーバ機で、Webサーバソフトと共に使う用途に特化、という感じか 別にサーバソフトがなきゃ、ちょっとしたJavaScriptの動作環境でしかない
317 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 20:33:51.69 ] >>315 大着して言うと、そんな感じかな クドいようだけどwebサーバーじゃなくてwebサーバー的に利用できる。って感じかな あくまでScriptは手段とかツールに近いからアプリとは断言したくないんだろうね
318 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 20:52:20.96 ] ありがとう なんとなくわかった
319 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 00:31:33.68 ] なんで誰もnodeをちゃんと説明できないんだ? 本当はきちんと理解してないんだろう? サーバーサイドで動くとか、別にnodeをクライアントに インストールすればクライアントでも動くんだから的はずれだよ。 簡単に言うとnodeっていうのは JavaScript+組み込みライブラリ だよ。 例えばブラウザに搭載されているJavaScript、これにはDOMを操作する 機能がついているが、これはJavaScriptの範囲ではないというのはわかるだろう? つまりJavaScriptにはDOM機能が ”欠けている” と言えるわけだ。 ブラウザはその欠けているDOM機能を追加したもの。 JavaScriptには他にも機能が欠けていて、たとえばファイルの読み書き機能。 nodeはその欠けているファイル読み書きライブラリなどを追加したもの 他の言語なら単に「便利なライブラリを作りました」で終わるような話だけど JavaScriptには他のライブラリを読み込むincludeやuseなどの文法も欠けているので 既存のJavaScriptを拡張しなければ実現不可能だった。 nodeによってJavaScriptが汎用のスクリプト言語になったわけで ウェブサーバー等も実装することが可能になったということ。
320 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 00:34:45.73 ] んー nodeはDOM APIを含んでるの?含んでないの?どっちー?
321 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 00:40:12.14 ] nodeにDOM APIは含んでいない。 ただし外部ライブラリを読み込む機能は付いているので DOM APIを提供しているライブラリもあるかもしれない。 それはPerlにDOM APIは含まれていないが、 CPANモジュールを使ってHTML Parserなどで DOMを操作できるのと同じ事。
322 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 00:51:50.85 ] > JavaScript+組み込みライブラリ これもちょっと俺には定義としてはピンとこない説明だなあ JavaScriptというのはただの言語で、インタプリタかVMかJITかといった詳細は ともかくとして、JavaScriptで書かれたプログラムを動かすためには 何らかの実行環境(ホスト)がいる Perl言語で言ったらperlコマンド(あるいはperl.exe)だな JavaScriptの場合それがWebブラウザであったりWSHだったりするんだが、 node.jsもその一種、つまりJavaScriptの実行環境の一種に過ぎない JavaScript実行環境としてのnode.jsの特徴は、google chromeで使われている V8エンジンを使っていて高速であることと、おもに並列処理に特化したサーバ向きの ランタイム(ライブラリ)実装を持っていること V8を実装しているのはgoogleだから、node.jsの主成分はランタイムの部分という ことになる 「サーバ向き」なだけで、サーバにしか使えないかといえば、別にそういうことはない
323 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 00:56:45.27 ] V8はコマンドラインから実行できる。
324 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 01:02:34.01 ] linuxで使いたいですがどうすればいいんですか?
325 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 01:45:23.48 ] サーバーサイドという字面に振り回されすぎじゃないのかな。 サーバーサイドの○○というのは、今までクライアント(ブラウザ)でしか使えなかったものをサーバーコンピュータ上でも使えるようにしたよという以上の意味は無い。 現代のサーバーコンピュータの多くはwindowsやunix系OSで構成されている。そしてwindows上で実行可能なものは何であれwindowsを使ったサーバーコンピュータ上で実行可能だし、unix系OSもまた然り。(環境依存のものは除く) 現実的には「サーバーサイド○○」というのは、サーバーコンピュータで使用されているところのwindowsなりunixOS上で(サーバープログラムと連携可能な何らかの形式で)実行可能な○○というのと同義と考えていい。 <<324 nodeのソースコードをダウンロードしてmakeするか、nave等の管理コマンドをダウンロードして実行する。やり方はググれ。
326 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 01:47:17.91 ] >>325 アンカーミスった。 >>324 な。
327 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 02:02:06.54 ] えー! node.jsはlinuxじゃ使えないんですか!! 面倒なのは大っ嫌いなので諦めます
328 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 02:10:44.61 ] そんな頭でLinuxを使うほうが面倒だと思うんだ
329 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 02:32:29.12 ] 多分ubuntu入れてるんだろうな
330 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 02:36:54.44 ] 元々の質問は>>296 だし、何でクライアントの話に持っていくんだよ… クライアントでNodeやる云々はそもそもスレタイ的にスレ違い Nodeの説明としてはいいと思うけど
331 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 03:08:19.34 ] >>296 の質問には多分「違う」と答えるのが適切と思われる。 webサーバーソフトウェアという言葉でどんなものをイメージしているのかは知らないが、おそらく一式をダウンロードして設定を行なって起動すればその時点で完全なwebサーバーとして動作するもののことを言っているのだろう。 何度も言われている通りnodeはあくまでスクリプト(プログラミング言語)実行環境でしかない。 言うなれば「webサーバーソフトウェア」そのものをjavascriptで作るためのもの。
332 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 03:22:30.42 ] C#と.Netの関係に似てるかもしれない
333 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 03:47:08.66 ] >>314 出来ない