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/
175 名前:デフォルトの名無しさん mailto:sage [2011/12/04(日) 23:53:33.40 ] sourceforge.jp/magazine/09/02/12/0530242/2
176 名前:デフォルトの名無しさん mailto:sage [2011/12/05(月) 00:33:50.64 ] うわ、めんどくさそ…
177 名前:デフォルトの名無しさん mailto:sage [2011/12/05(月) 00:39:41.89 ] cygwinってかなり改善されたんじゃないの? 最近Window使ってないから詳しくは知らないけど
178 名前:デフォルトの名無しさん mailto:sage [2011/12/05(月) 03:01:49.41 ] cygwin は糞だよ
179 名前:デフォルトの名無しさん mailto:sage [2011/12/05(月) 07:42:59.40 ] 使ってないわー 最近Windows使ってないわー
180 名前:デフォルトの名無しさん mailto:sage [2011/12/05(月) 10:59:16.90 ] 必要性があんまないもんな
181 名前:デフォルトの名無しさん mailto:sage [2011/12/05(月) 12:04:56.82 ] >>179 やっぱMS-DOSだよねー
182 名前:デフォルトの名無しさん mailto:sage [2011/12/06(火) 23:43:16.44 ] var http = require('http'); var fs = require('fs'); var server = http.createServer(function(req, res){ res.writeHead(200, {'Content-Type': 'text/plain'}); res.writeHead(200, {'Content-Type': 'text/html'}); res.write(fs.readFileSync('./tmp/helloworld.html')); }); server.on('request', function(req, res){ console.log(req.url + ' "' + req.headers['user-agent'] + '"'); }); server.listen(3000); console.log("Start server"); console.log("127.0.0.1:3000/ "); 以上をnode.jsを使い起動 <html> <head> <title>イベント属性の練習</title> <meta http-equiv="Coutent-Script-Type" content="text/javascript"> </head> <body> <p> <input type="button" value="クリック!" onclick="alert('こんにちは!')"> </p> </body> </html> Webページで127.0.0.1:3000/ をHelloWorldを表示するのですがロードにとても時間がかかってしまいます またLunascape6.5やIE9、firefox、safariでは表示されますがGoogle Chromeでは表示されません。 何故でしょうか?
183 名前:182 mailto:sage [2011/12/06(火) 23:44:39.68 ] >Webページで127.0.0.1:3000/ をHelloWorldを表示するのですがロードにとても時間がかかってしまいます ↓ Webページで127.0.0.1:3000/ を入力し上記のHelloWorld.htmlを表示するのですがロードにとても時間がかかってしまいます
184 名前:デフォルトの名無しさん mailto:sage [2011/12/06(火) 23:56:48.54 ] >>183 local lan 内で ubuntu 上にインストールした node.js で実行したものを ほかのウィンドウズPCからアクセスしてるのかと思ったが 単純にウィンドウズPC一台でローカルでテストしてるのかな… python -m SimpleHTTPServer で localhost:8080/ でアクセスしてみてロードでさっくり表示されるか どうか調べてみると問題の切り分けに多少近づくかも。chromeは、確か デフォルトの設定だとプロキシかipv6とかその辺の設定で遅くなるとかどこかで 見たような気がする…
185 名前:デフォルトの名無しさん mailto:sage [2011/12/07(水) 02:22:19.91 ] >>182 ちと、気になったんだけど・・・ > res.writeHead(200, {'Content-Type': 'text/plain'}); > res.writeHead(200, {'Content-Type': 'text/html'}); なぜ、res.writeHead() が 2 つ? それと遅い理由は、もしかしたら res.end() がないからかな?
186 名前:デフォルトの名無しさん mailto:sage [2011/12/07(水) 02:44:48.45 ] >>185 のつづき http.createServer() のところを、こうしてみたら? var data = fs.readFileSync('./tmp/helloworld.html'); res.writeHead(200, { 'Content-Type': 'text/html', 'Content-Length': data.length }); res.end(data);
187 名前:182 mailto:sage [2011/12/07(水) 10:00:12.34 ] >>186 とても早くなりました ありがとうございます
188 名前:デフォルトの名無しさん mailto:sage [2011/12/07(水) 12:08:50.82 ] 俺も昔やったな、end忘れ。
189 名前:デフォルトの名無しさん mailto:sage [2011/12/08(木) 06:06:23.93 ] addListener と on の違いがわからない
190 名前:デフォルトの名無しさん mailto:sage [2011/12/08(木) 06:48:53.61 ] IEとその他の話かい?
191 名前:デフォルトの名無しさん mailto:sage [2011/12/08(木) 10:06:44.33 ] もともとaddListenerだたけどonにかわっただけじゃないの?
192 名前:デフォルトの名無しさん mailto:sage [2011/12/08(木) 18:45:50.10 ] >>191 なるほど。使用頻度が高いから、短い単語にしたのかな てっきり thread.on('sage', function () {}); は、thread.onSage = function () {}; みたいなのかと思ってた
193 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 00:18:49.55 ] 調べてもクライアント側で入力したものをサーバー側で受け止める方法がない. わかりやすく解説してるサイト内?
194 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 01:44:43.55 ] >>193 やっつけ。あとはググって フォームじゃないけど、やっていることはあまり変わらないと思う require('http').createServer(function (request, response) { var url = require('url').parse(request.url); var data = ''; if (url.search) { query = require('querystring').parse(url.search.substr(1)); data = query.q; } response.writeHead(200, { 'content-type': 'text/plain' }); response.end(data); }).listen(8124); 127.0.0.1:8124/?q= あぼーん を開くと、「 あぼーん 」と表示されるはず
195 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 14:05:34.72 ] amanelis Alex Manelis At #mongosv, people really do not like #coffeescript.. 手放しで、素晴らしいといえるものという訳でもない みたいだね…
196 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 21:35:23.94 ] nodeでGCと格闘する事になるとは予想してなかったわ。 Javaみたいにチューニングいるのかなorz.. Scavenge 379.5 -> 374.1 MB, 26 ms. Scavenge 381.7 -> 376.3 MB, 27 ms. Scavenge 392.9 -> 380.6 MB, 31 ms. Scavenge 396.1 -> 384.8 MB, 40 ms. Scavenge 399.3 -> 388.7 MB, 37 ms. Scavenge 391.4 -> 389.4 MB, 25 ms. Scavenge 399.8 -> 392.5 MB, 24 ms. Mark-sweep 399.4 -> 353.6 MB, 2 / 979 ms. セグメンテーション違反です
197 名前:デフォルトの名無しさん mailto:sage [2011/12/11(日) 12:30:26.06 ] socket.ioでチャットもどきを作ってるんだけど、クライアントから受け取る文字数が無制限だから仮に1000KBとか送信されたら死ぬ。 if(message.length >= 100) return; みたいにしてもlengthを調べる前に死んでる。 socket.io使ってる人どうしてる?
198 名前:デフォルトの名無しさん mailto:sage [2011/12/11(日) 12:31:46.69 ] クライアント側で文字数規制する
199 名前:デフォルトの名無しさん mailto:sage [2011/12/11(日) 12:38:32.81 ] クライアント側なんていくらでも改変可能だから意味ないでしょ
200 名前:デフォルトの名無しさん mailto:sage [2011/12/11(日) 12:55:40.05 ] このスレはなぜこの板にあるの?スレタイやスレ文からしてwebprog板ではないの?
201 名前:デフォルトの名無しさん mailto:sage [2011/12/11(日) 13:33:44.47 ] 俺は普通のCLIスクリプト書くのにたまに使ってる
202 名前:デフォルトの名無しさん mailto:sage [2011/12/11(日) 14:38:39.73 ] >>197 そう簡単に落ちるものかな >if(message.length >= 100) return; みたいにしてもlengthを調べる前に死んでる。 これ、他の理由で落ちてるとは考えられない? >>198-199 それでも、クライアント側で制限はしておくべき
203 名前:デフォルトの名無しさん mailto:sage [2011/12/11(日) 16:06:34.61 ] >>202 正確には落ちるわけじゃなくて、負荷が高すぎて重くなるっていうだけなんだけどね。 どんなでかいデータも全部受信してしまうのが原因で間違いないと思う。 何バイトまで受け取るってのを設定できればいいんだが、ライブラリ追った限りでは無理だった。 一応クライアント側でも対策してみる。
204 名前:デフォルトの名無しさん mailto:sage [2011/12/11(日) 17:59:47.57 ] on('data')で受け取ってる段階で制限オーバーしたらコネクションを切断するとかそういう問題じゃなくて_
205 名前:デフォルトの名無しさん mailto:sage [2011/12/11(日) 18:11:26.47 ] >>203 メモリ管理を自前で実装というのは面倒くさいな
206 名前:デフォルトの名無しさん mailto:sage [2011/12/11(日) 18:13:44.80 ] あぁアンカは関係ない・・・ ただのミスだ・・・
207 名前:デフォルトの名無しさん mailto:sage [2011/12/11(日) 18:57:05.26 ] >>204 GET、POSTならそれで良いけどソケットだとon('data')が呼ばれるのは受信が完了したときだから手遅れだな node.jsのモジュールから修正しないとどうにもならないかもしれん
208 名前:デフォルトの名無しさん mailto:sage [2011/12/11(日) 19:08:57.61 ] pipe使ってハンドリングできないものかと考えてる
209 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 00:24:22.46 ] getやpostを使えば コメント:<input type="text" id="comments" value=""> に書かれたコメントを受け取れるって認識でおk?
210 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 00:26:18.48 ] そんな単純な脆弱性がデフォで対策されてないことに驚いた。 socket.io使ってるアプリ全滅するんじゃね。
211 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 03:01:09.75 ] cannot find module 'connect'が攻略できなくて困る
212 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 13:20:30.44 ] www.dotup.org/uploda/www.dotup.org2371733.png このようなerrorが出た場合の対処法を教えていただけないでしょうか?
213 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 13:27:25.80 ] エラーメッセージをよく読め。 中腹あたりにhas no method createServerって書いてある。 その次の行にそれが発生した行が書かれてる。
214 名前:212 mailto:sage [2011/12/12(月) 13:35:21.35 ] >>213 ありがとうございます 調べてきます
215 名前:212 mailto:sage [2011/12/12(月) 15:24:09.84 ] ttp://d.hatena.ne.jp/replication/20110307/1299451484 ここの方のものを試しているのですが上手くいかないです
216 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 15:42:21.59 ] expressが入ってないとかじゃないの
217 名前:212 mailto:sage [2011/12/12(月) 16:30:49.73 ] expressはちゃんと使っています
218 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 18:33:03.54 ] >>215 >>216 が言いたいのはきっと、インストールしているかってことだよ node.js 入れただけじゃ、express は使えないよ
219 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 19:37:51.41 ] 先頭行にでもdebugger;って埋め込んで node debug get2.jsで起動してデバッグするのが一番楽な気がする 可能ならnode-inspectorなんだろうけど あれって意外と微妙
220 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 19:52:16.30 ] node.jsで、Errorクラスを継承するときの、ベストプラクティスはありますか。 自分でやってみたけど、throwしたときにstackが設定されないなど、問題があって、うまくいきません。 function FooError(message) { Error.call(this, message); this.message = message; // なぜ必要? } //FooError.prototype = new Error(); //delete FooError.prototype.stack; FooError.prototype.__proto__ = Error.prototype; FooError.prototype.constructor = FooError; Errorを継承する際の、決定版となる方法がしりたいです。お願いします。
221 名前:212 mailto:sage [2011/12/12(月) 21:10:57.64 ] >>218 一応githubを使ってexpressのフォルダを同じフォルダに入れています. expressを入れていない時のエラー文はこうなっています www.dotup.org/uploda/www.dotup.org2373091.png
222 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 22:31:10.28 ] ダウンロードとかgit cloneとかじゃなく npmで入れたら?
223 名前:212 mailto:sage [2011/12/12(月) 23:47:42.54 ] npmをインストールしてもERRが多いのでgithubで行いました どうにかならないでしょうか?
224 名前:212 mailto:sage [2011/12/13(火) 09:13:27.56 ] 解決しました
225 名前:212 mailto:sage [2011/12/13(火) 09:14:17.13 ] 解決しました
226 名前:212 mailto:sage [2011/12/13(火) 14:33:15.72 ] http.createServer(); express.createServer(); 上記の2つを1つのjsで共存することは可能ですか? 出来ればやり方が知りたいです
227 名前:デフォルトの名無しさん mailto:sage [2011/12/13(火) 21:34:39.61 ] node.js 0.6.3をインストールしてるんだけど、assert.jsのソースが見つからない。 find 0.6.3 | grep -i assert しても、ファイルはなし。 assert.jsのソースがみたいんだけど、どこにあるの?
228 名前:デフォルトの名無しさん [2011/12/14(水) 00:07:09.74 ] lib/assert.jsだよ
229 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 01:28:58.50 ] app(x,y){ var mon; mon = x + y; }; このクライアント側で作ったxとyの中身を足したmonをサーバーサイドへ送るにはgetを使うのですか?
230 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 12:25:35.15 ] >>224-225 解決したのはいいけど、せめて原因くらい書いておこうよ >>226 どう共存させたいのか var server = http.createServer(); var app = express.createServer(); // 略 sever.listen(8001); app.listen(8002); 例えば、ポートを分けるとか >>229 POST でも渡せる
231 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 15:04:41.32 ] >>230 書き込み用のHTMLと書き込み内容を表示させるためのHTMLを作り、 書き込み用のHTML内に書き込み内容を表示させるためにiframeを使いたいです appの方で書き込み用のHTMLから変数を受け取りserverの方でserver-sent eventを使い表示用のHTMLに送信しようと思います appでindex.html、serverでindex2.htmlを読み込ませ sever.listen(8001); app.listen(8002); とした場合 <iframe src="リンク先" height="80"> 上記のリンク先には127.0.0.1:80 とindex2.htmのどちらを入れればよいでしょうか?
232 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 15:49:53.12 ] とりあえず nodeとかに手出さずに PHPなりrubyなりPythonなりperlなりで サーバサイドとクライアントサイド両方の勉強しておいで
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