[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 2chのread.cgiへ]
Update time : 05/24 12:05 / Filesize : 170 KB / Number-of Response : 736
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【node.js】サーバサイドjavascript【Rhino】



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






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<170KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef