【node.js】サーバサイドjavascript【Rhino】at TECH
【node.js】サーバサイドjavascript【Rhino】 - 暇つぶし2ch100:デフォルトの名無しさん
11/10/14 06:08:13.79
>>61
そこまで理想的ではないけどSocketstreamがいい線いってないかな
0.3のリリースを結構楽しみに待ってる

101:デフォルトの名無しさん
11/10/26 02:38:56.10
初めて聞いたんだが

サーバーサイドっていうことは
常に起動してるアプリがあるってことか?

javaScriptサーバー起動 ⇒ ブラウザからアクセス ⇒ 処理 ⇒ HTMLを返す

こんな感じ?

102:デフォルトの名無しさん
11/10/26 02:39:13.56
ん?結構過疎ってるなw

103:デフォルトの名無しさん
11/10/26 03:06:01.11
>>101
基本的にはそうだよ
ただ、Nodeに関して言えば
あれは、webサーバが楽に書けるということを主体とした汎用スクリプト言語というだけであって
それこそwebサーバはもちろんだが、gemのようなモジュール管理のためのコマンドライン用のプログラムやら
他言語からJSへのコンバータからX window用のウィンドウマネージャまで色々書かれてある

104:デフォルトの名無しさん
11/10/26 08:01:34.85
>>101
サーバーサイドで動いてる他言語も同じじゃん


105:デフォルトの名無しさん
11/10/26 09:00:20.11
わざわざjavascriptをHTMLで返すメリットがわからん

106:デフォルトの名無しさん
11/10/26 11:01:37.59
>>105
え?

107:デフォルトの名無しさん
11/10/26 12:10:24.33
>>105
post、getとsubmitしまくるのかよw
動的ページはCSSのみっすか?

108:デフォルトの名無しさん
11/10/26 15:24:16.99
import の仕組みが onload 一点押しというのは。一にセキュリティ上の配慮からくる制約。
ぼんぼん俺は好きなときにスクリプトが走らせるぜ。ふざんけな即ブロック。

そしてそんな駆け引き。
という歴史的経緯も多少関係あるようには思う。importする順とか上から順に解釈されてゆくし
そこらへん見えなくなっても仕組みは変えられないし。じゃぁ直接埋め込んで置けばいいんでね?と

109:デフォルトの名無しさん
11/10/26 16:54:40.60
え?

110:デフォルトの名無しさん
11/10/26 19:48:35.05
>>103
なんじゃそら?
と思ったらほんとにWMあるのなw
面白い情報ありがと

111:デフォルトの名無しさん
11/11/05 10:25:41.51
ちょっと興味があったので寄ってみました。
node.jsでチャット作るとしたら、
同時接続数の上限とかどんなかんじでしょうか?
rootないレンタルサーバでも動くんかいな?

112:デフォルトの名無しさん
11/11/06 11:56:31.08
>>111
ググれ
レンタル鯖だと使えない会社は多い

113:デフォルトの名無しさん
11/11/07 19:57:39.15
node 0.6が出たのでageてみる

114:デフォルトの名無しさん
11/11/08 20:18:05.89
ubuntu 11.10 で テストしてみたけどlinuxとかだとディストリの
package manager使ったほうが圧倒的にラクだな
$sudo apt-get install npm & apt-get install coffeescript
現時点だと
npm 経由で coffee をいれると version 1.1.2
apt-get 経由だと version 1.1.1

窓もテストしてみたけどnodeのnpmでcolorsぐらいは動いたけど
coffeeの入れ方とか地味に何やってるのかわからんね。あれは。
モジュールのパスの通し方とかそもそもcoffee自体がnpm経由で
のインストールとか窓に対応してない予感。とりあえず撤収。

115:デフォルトの名無しさん
11/11/08 21:13:14.88
ubuntu自体が提供してるnpmは古いからなぁ
どこかのppaが提供してる物でないと使い物にならないぞ



116:デフォルトの名無しさん
11/11/08 21:24:57.93
node6.0でnpm使うとバージョンチェックではじかれて使えないとかワラエナイ

117:デフォルトの名無しさん
11/11/08 22:32:21.07
npmのディレクトリ内にあるpackage.jsonの中にある
enginesって項目を"node" : "0.4 || 0.5 || 0.6"に書き換えて
npmのアップデートしろ

ついでに言えばnode自体もまだ0.6.0な

118:デフォルトの名無しさん
11/11/08 22:54:42.00
そんな面倒なことしないといけないのか・・・

119:デフォルトの名無しさん
11/11/08 23:03:58.53
npm入れなおしでも良いよ
というかアップデートの順番は
npm -> nodeの順でないと
nodeのバージョンチェックしてるからね
それが面倒ならnvmなりnaveなりを使うべきだと思うよ

120:デフォルトの名無しさん
11/11/09 01:49:08.62
nave新しいバージョンを指定するたびに10分はかかるコンパイルをやり始めるから嫌い

121:デフォルトの名無しさん
11/11/10 02:28:00.48
js初心者なんですけど、オススメのIDE教えてくだしあ。
やるのはnodeです。
できれば、かっこを上手に整形できる機能があるやつだと嬉しいです。

122:デフォルトの名無しさん
11/11/10 08:00:01.92
>>121
Emacs

123:デフォルトの名無しさん
11/11/10 08:02:35.35
>>121
間違えたw
IDEなら差ほど変わりはなくね?
好きなの使えば?

124:デフォルトの名無しさん
11/11/15 20:10:07.53
jsdo.itとjsapp.usがあればIDEなんていらないな

125:デフォルトの名無しさん
11/11/15 23:09:22.63
>>124
node.jsにも対応したんだ?

126:デフォルトの名無しさん
11/11/17 18:34:37.46
v0.8 Roadmap
URLリンク(mail.google.com)
>The current target for a v0.8 release is early January.
>We will continue weekly v0.6 releases throughout v0.8 development.

- Get rid of WAF. All platforms will build using GYP. (Ben, Ryan)
URLリンク(github.com)

0.8 に向けてロードマップが出てきてるな
早いな…そしてビルドシステム周りはいろいろ試行錯誤の段階っぽいな…

127:デフォルトの名無しさん
11/11/17 20:08:01.31
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
name = window.prompt("入力してください", "");
res.end(name);
}).listen(10001, "127.0.0.1");

error出るんだけどどうしたら良いですか?

128:デフォルトの名無しさん
11/11/17 20:31:39.89
name = window.prompt("入力してください", "");
これは何のつもりだ。クライアント側で実行される訳ではないぞ。

129:デフォルトの名無しさん
11/11/17 20:48:19.74
んじゃなにか入力してもらうときはどうしたら良いん?

130:デフォルトの名無しさん
11/11/17 21:03:23.48
その前に何故、node.jsを選んだのか説明してもらおうか

131:デフォルトの名無しさん
11/11/17 21:07:25.05
javascript サーバーで引っかかった

132:デフォルトの名無しさん
11/11/17 21:08:45.87
あとチャットぽいものを作れればいいなぁと思ってjavascriptを勉強してる

133:デフォルトの名無しさん
11/11/17 21:22:24.66
サーバサイド、クライアントサイドの違いの勉強と
JavaScriptのさらなる勉強を先にすべきだな


134:デフォルトの名無しさん
11/11/17 22:13:23.59
無理せずVisial某を使っとけば

135:デフォルトの名無しさん
11/11/17 23:29:00.76
>>132
いきなりnode.jsかよ
まぁあれだ、どーしてもというならYOU TUBEで検索すりゃ10分で作れる

136:デフォルトの名無しさん
11/11/19 10:40:37.41
URLリンク(scan.netsecurity.ne.jp)
tokuhirom、ma.la?っていう人の話だけ聞きたい
色々なスレで見かけるけどWEB業界で有名らしいね
動画ありませんか?

137:デフォルトの名無しさん
11/11/19 11:19:27.65
URLリンク(ja.avtokyo.org)
>参加費: 前売り 5,000円 (オンライン受付) 
>当 日 8,000円 (現金のみ)

結構参加費掛かってるみたいだし動画は無いんじゃないかな…

138:デフォルトの名無しさん
11/11/19 11:53:36.98
avtokyoは動画配信も予定してないって書いてあったし
同様の行為も禁止しますって書いてあったから無いと思うよ

139:デフォルトの名無しさん
11/11/20 00:57:45.64
node.jsは公式サイトだと、hello worldのサンプルぐらいしか
初心者にわかりやすいチュートリアルが無いのが痛い
railsみたいに15分でブログ作るみたいな、わかりやすいのがない

140:デフォルトの名無しさん
11/11/20 02:30:54.13
わざわざ選ぶくらいの人なら、特にそんなのも必要ないんじゃねーの

141:デフォルトの名無しさん
11/11/20 12:42:23.69
そういうのって流行らない技術の典型なんじゃないの

142:1
11/11/20 14:21:19.21
CSSツールのlessもnode.jsに対応しているし、ディベロッパーのnode.jsへの関心は結構高いようだね。
ちなみにtwitterが公式に公開しているbootstrapもlessで公開されている。

143:デフォルトの名無しさん
11/11/20 15:46:48.87
最近のnodeでless動かなくない?

144:デフォルトの名無しさん
11/11/20 21:34:09.32
本体の update 早いからな…
テンプレートエンジン類の実装はなかなか追いきれないというのは
多少あるかもしれん…

whyさんのcuffeekupを動的実行化した?drykupとか
面白そうだと思うんだが…うむ…

145:デフォルトの名無しさん
11/11/20 21:56:17.38
URLリンク(github.com)

とかいうのもあるな…

146:デフォルトの名無しさん
11/11/20 22:47:48.07
Jade触った後にHamlを触ると要素の頭にいちいち%を付けないといけなくてイライラするよね

147:デフォルトの名無しさん
11/11/21 17:53:01.97
>>133
サーバーサイドとクライアントサイドの違いをようやく理解できたよ

148:デフォルトの名無しさん
11/11/21 19:14:20.85
>>147
それでもまだnode.jsでやる気かよ
いや、まぁ悪いとは思わんけど

149:デフォルトの名無しさん
11/11/23 09:54:41.60
URLリンク(blog.nodejs.org)

いまだと 0.6.2 が安定版だと最新なんだな
windows 64bitで動けばいいんだけど
mingw-64bitの対応待ちかな…

150:デフォルトの名無しさん
11/11/24 08:03:35.32
>>149
サイトのmsiじゃダメなの?


151:デフォルトの名無しさん
11/11/27 12:28:14.33
URLリンク(comments.gmane.org)

0.7系から npm をデフォルトではインストールしない
方向に進みそうかな?それともオプションで選べるようになるか…

ちょっと、いまいちよくわからないけど何らかの変更は
ありそうだね

152:デフォルトの名無しさん
11/11/28 11:43:33.84
node.jsはsocket.io目当てで使いましたが、他に何か面白い使い道ないのかなぁと思ってしまう。
非同期IOでjsっていうnodeにとって、本領の発揮できそうなおすすめなライブラリやネタって何かありますかね?
開発者から見て魅力的なネタやインパクトを出して行かないと今後も流行らないだろうなと危惧してますわ

153:デフォルトの名無しさん
11/11/28 22:08:10.91
いや、流行るだろ
時代はLAMPからJanos(JavaScript + Node.js + NoSQL)とか言われてる

154:デフォルトの名無しさん
11/11/28 22:52:04.58
>>153
ジャノスって読むの?
NoSQLは結局CやJavaで書かれるし、そこまで流行らないんじゃ

155:デフォルトの名無しさん
11/11/28 23:05:35.14
LAMPだってそれぞれ違うでしょ


156:デフォルトの名無しさん
11/11/29 07:59:56.27
NoSQLはドキュメント型ならまだしもKVSは落ち目な気がする。

157:デフォルトの名無しさん
11/11/29 08:03:50.72
NoSQLがしっかり設計できて運用まで出来るエンジニア
node.jsの設置、設定、コーディングが出来るエンジニア

そんなに多いとはとても思えない、node.jsもだがNoSQLのが出来る人少なそう

158:1
11/11/29 12:24:50.96
このような報告もあります

NoSQLとしてMySQLを使うDeNAが、memcachedよりも高速な75万クエリ/秒を実現
URLリンク(www.publickey1.jp)

159:デフォルトの名無しさん
11/11/29 12:27:35.93
NoSQLにはユーザが直接保存したデータは保存しない流れになってる気がする
大抵セッション情報とかログデータの操作に利用されてるような

160:デフォルトの名無しさん
11/11/29 12:30:59.64
mysqlの運用は枯れてるからそこに追いつくのは至難の技。
新しい技術が出てmysqlに戻ってを繰り返してる気がするなぁ。

161:デフォルトの名無しさん
11/11/29 22:37:13.55
>>159
NoSQLの種類によるでしょ
KVS型とdocument(note)型じゃ全然違うし

162:デフォルトの名無しさん
11/11/29 23:06:34.57
8086が出た時には
まさか20年以上使われて今だ主流
3Ghz超えるとは思わなかった
SQLもしかり

163:デフォルトの名無しさん
11/11/30 18:48:33.22
言語側でSQLをまったく書かなくてもいいようなライブラリか何かを用意してくれれば超助かるんですが

164:デフォルトの名無しさん
11/11/30 20:36:50.37
要所要所でORMをみたいな融通が聞くともっといいような…
とか appengine を使ってて思ったの

といいつつあまりよくわかってないな…要課題

165:デフォルトの名無しさん
11/12/02 12:58:48.88
っと思ったらこれだ
URLリンク(www.publickey1.jp)

MSもnode.jsをWindowsサーバで動かすって言ってるし、これからの有力候補である事は間違いないね

166:デフォルトの名無しさん
11/12/03 14:23:46.82
nodeにも、railsのActiveSupportみたいな
上位のユーティリティライブラリない?
underscoreは、ぎりぎりでrubyレベルみたいだけど、
それより便利な奴が欲しい。

167:デフォルトの名無しさん
11/12/03 15:24:57.57
>>166
URLリンク(sugarjs.com) とか?

168:デフォルトの名無しさん
11/12/03 16:07:08.73
>>167
おお、かなりrubyっぽい。
underscoreみたいな無理やりじゃなくて、
危険を顧みずinstance.method()としちゃってるのが逆にすがすがしい。
escape*(), unescape*()が一通りそろってる。
DateもActiveSupportに負けないぐらいがんばってる。
これは使えそうだ。
いいモノ紹介してくれてありがとう。

169:デフォルトの名無しさん
11/12/04 02:36:29.44
>>165
めんどくせえから
windowsもカーネルlinuxでbash標準
IEもWebkitとv8にすりゃいいのに

170:デフォルトの名無しさん
11/12/04 10:29:15.69
bash標準になったら嬉しいなあ、ついでにターミナルもまともなものをだな…
現状じゃcmd.exeのせいでシェルもターミナルも両方とも腐ってる

171:デフォルトの名無しさん
11/12/04 12:30:36.05
ms dosの時代から連綿と続いてきてるので…
それとそういう用途なら powershell 使うというのが推奨されるかな…

172:デフォルトの名無しさん
11/12/04 15:39:52.85
>>169
そんな事になったらWindowsの個性がないじゃんw

173:デフォルトの名無しさん
11/12/04 23:33:40.43
そんなに使いたいなら普通にbash入れればいいだけの話だしなぁ

174:デフォルトの名無しさん
11/12/04 23:46:34.47
cygwin以外で使えるなら教えてくれ

175:デフォルトの名無しさん
11/12/04 23:53:33.40
URLリンク(sourceforge.jp)

176:デフォルトの名無しさん
11/12/05 00:33:50.64
うわ、めんどくさそ…

177:デフォルトの名無しさん
11/12/05 00:39:41.89
cygwinってかなり改善されたんじゃないの?
最近Window使ってないから詳しくは知らないけど


178:デフォルトの名無しさん
11/12/05 03:01:49.41
cygwin は糞だよ

179:デフォルトの名無しさん
11/12/05 07:42:59.40
使ってないわー
最近Windows使ってないわー

180:デフォルトの名無しさん
11/12/05 10:59:16.90
必要性があんまないもんな

181:デフォルトの名無しさん
11/12/05 12:04:56.82
>>179
やっぱMS-DOSだよねー

182:デフォルトの名無しさん
11/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("URLリンク(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ページでURLリンク(127.0.0.1:3000)をHelloWorldを表示するのですがロードにとても時間がかかってしまいます
またLunascape6.5やIE9、firefox、safariでは表示されますがGoogle Chromeでは表示されません。
何故でしょうか?

183:182
11/12/06 23:44:39.68
>WebページでURLリンク(127.0.0.1:3000)をHelloWorldを表示するのですがロードにとても時間がかかってしまいます
 ↓
WebページでURLリンク(127.0.0.1:3000)を入力し上記のHelloWorld.htmlを表示するのですがロードにとても時間がかかってしまいます

184:デフォルトの名無しさん
11/12/06 23:56:48.54
>>183
local lan 内で ubuntu 上にインストールした node.js で実行したものを
ほかのウィンドウズPCからアクセスしてるのかと思ったが
単純にウィンドウズPC一台でローカルでテストしてるのかな…

python -m SimpleHTTPServer
URLリンク(localhost:8080) でアクセスしてみてロードでさっくり表示されるか
どうか調べてみると問題の切り分けに多少近づくかも。chromeは、確か
デフォルトの設定だとプロキシかipv6とかその辺の設定で遅くなるとかどこかで
見たような気がする…

185:デフォルトの名無しさん
11/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:デフォルトの名無しさん
11/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
11/12/07 10:00:12.34
>>186
とても早くなりました
ありがとうございます

188:デフォルトの名無しさん
11/12/07 12:08:50.82
俺も昔やったな、end忘れ。

189:デフォルトの名無しさん
11/12/08 06:06:23.93
addListener と on の違いがわからない

190:デフォルトの名無しさん
11/12/08 06:48:53.61
IEとその他の話かい?

191:デフォルトの名無しさん
11/12/08 10:06:44.33
もともとaddListenerだたけどonにかわっただけじゃないの?

192:デフォルトの名無しさん
11/12/08 18:45:50.10
>>191
なるほど。使用頻度が高いから、短い単語にしたのかな

てっきり thread.on('sage', function () {}); は、thread.onSage = function () {}; みたいなのかと思ってた


193:デフォルトの名無しさん
11/12/10 00:18:49.55
調べてもクライアント側で入力したものをサーバー側で受け止める方法がない.
わかりやすく解説してるサイト内?

194:デフォルトの名無しさん
11/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);

URLリンク(127.0.0.1:8124)あぼーん を開くと、「 あぼーん 」と表示されるはず

195:デフォルトの名無しさん
11/12/10 14:05:34.72
amanelis Alex Manelis
At #mongosv, people really do not like #coffeescript..

手放しで、素晴らしいといえるものという訳でもない
みたいだね…

196:デフォルトの名無しさん
11/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:デフォルトの名無しさん
11/12/11 12:30:26.06
socket.ioでチャットもどきを作ってるんだけど、クライアントから受け取る文字数が無制限だから仮に1000KBとか送信されたら死ぬ。

if(message.length >= 100) return; みたいにしてもlengthを調べる前に死んでる。

socket.io使ってる人どうしてる?

198:デフォルトの名無しさん
11/12/11 12:31:46.69
クライアント側で文字数規制する

199:デフォルトの名無しさん
11/12/11 12:38:32.81
クライアント側なんていくらでも改変可能だから意味ないでしょ


200:デフォルトの名無しさん
11/12/11 12:55:40.05
このスレはなぜこの板にあるの?スレタイやスレ文からしてwebprog板ではないの?

201:デフォルトの名無しさん
11/12/11 13:33:44.47
俺は普通のCLIスクリプト書くのにたまに使ってる

202:デフォルトの名無しさん
11/12/11 14:38:39.73
>>197
そう簡単に落ちるものかな

>if(message.length >= 100) return; みたいにしてもlengthを調べる前に死んでる。
これ、他の理由で落ちてるとは考えられない?

>>198-199
それでも、クライアント側で制限はしておくべき

203:デフォルトの名無しさん
11/12/11 16:06:34.61
>>202
正確には落ちるわけじゃなくて、負荷が高すぎて重くなるっていうだけなんだけどね。

どんなでかいデータも全部受信してしまうのが原因で間違いないと思う。

何バイトまで受け取るってのを設定できればいいんだが、ライブラリ追った限りでは無理だった。

一応クライアント側でも対策してみる。

204:デフォルトの名無しさん
11/12/11 17:59:47.57
on('data')で受け取ってる段階で制限オーバーしたらコネクションを切断するとかそういう問題じゃなくて_

205:デフォルトの名無しさん
11/12/11 18:11:26.47
>>203
メモリ管理を自前で実装というのは面倒くさいな

206:デフォルトの名無しさん
11/12/11 18:13:44.80
あぁアンカは関係ない・・・
ただのミスだ・・・

207:デフォルトの名無しさん
11/12/11 18:57:05.26
>>204
GET、POSTならそれで良いけどソケットだとon('data')が呼ばれるのは受信が完了したときだから手遅れだな
node.jsのモジュールから修正しないとどうにもならないかもしれん

208:デフォルトの名無しさん
11/12/11 19:08:57.61
pipe使ってハンドリングできないものかと考えてる

209:デフォルトの名無しさん
11/12/12 00:24:22.46
getやpostを使えば
コメント:<input type="text" id="comments" value="">
に書かれたコメントを受け取れるって認識でおk?

210:デフォルトの名無しさん
11/12/12 00:26:18.48
そんな単純な脆弱性がデフォで対策されてないことに驚いた。
socket.io使ってるアプリ全滅するんじゃね。

211:デフォルトの名無しさん
11/12/12 03:01:09.75
cannot find module 'connect'が攻略できなくて困る

212:デフォルトの名無しさん
11/12/12 13:20:30.44
URLリンク(www.dotup.org)
このようなerrorが出た場合の対処法を教えていただけないでしょうか?

213:デフォルトの名無しさん
11/12/12 13:27:25.80
エラーメッセージをよく読め。
中腹あたりにhas no method createServerって書いてある。
その次の行にそれが発生した行が書かれてる。

214:212
11/12/12 13:35:21.35
>>213
ありがとうございます
調べてきます

215:212
11/12/12 15:24:09.84
URLリンク(d.hatena.ne.jp)
ここの方のものを試しているのですが上手くいかないです

216:デフォルトの名無しさん
11/12/12 15:42:21.59
expressが入ってないとかじゃないの

217:212
11/12/12 16:30:49.73
expressはちゃんと使っています

218:デフォルトの名無しさん
11/12/12 18:33:03.54
>>215
>>216 が言いたいのはきっと、インストールしているかってことだよ

node.js 入れただけじゃ、express は使えないよ

219:デフォルトの名無しさん
11/12/12 19:37:51.41
先頭行にでもdebugger;って埋め込んで
node debug get2.jsで起動してデバッグするのが一番楽な気がする
可能ならnode-inspectorなんだろうけど
あれって意外と微妙

220:デフォルトの名無しさん
11/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
11/12/12 21:10:57.64
>>218
一応githubを使ってexpressのフォルダを同じフォルダに入れています.
expressを入れていない時のエラー文はこうなっています
URLリンク(www.dotup.org)


222:デフォルトの名無しさん
11/12/12 22:31:10.28
ダウンロードとかgit cloneとかじゃなく
npmで入れたら?

223:212
11/12/12 23:47:42.54
npmをインストールしてもERRが多いのでgithubで行いました
どうにかならないでしょうか?

224:212
11/12/13 09:13:27.56
解決しました

225:212
11/12/13 09:14:17.13
解決しました

226:212
11/12/13 14:33:15.72
http.createServer();
express.createServer();
上記の2つを1つのjsで共存することは可能ですか?
出来ればやり方が知りたいです


227:デフォルトの名無しさん
11/12/13 21:34:39.61
node.js 0.6.3をインストールしてるんだけど、assert.jsのソースが見つからない。
find 0.6.3 | grep -i assert
しても、ファイルはなし。
assert.jsのソースがみたいんだけど、どこにあるの?

228:デフォルトの名無しさん
11/12/14 00:07:09.74
lib/assert.jsだよ

229:デフォルトの名無しさん
11/12/14 01:28:58.50
app(x,y){
var mon;
mon = x + y;
};

このクライアント側で作ったxとyの中身を足したmonをサーバーサイドへ送るにはgetを使うのですか?

230:デフォルトの名無しさん
11/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:デフォルトの名無しさん
11/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">
上記のリンク先にはURLリンク(127.0.0.1:80)とindex2.htmのどちらを入れればよいでしょうか?

232:デフォルトの名無しさん
11/12/14 15:49:53.12
とりあえず
nodeとかに手出さずに
PHPなりrubyなりPythonなりperlなりで
サーバサイドとクライアントサイド両方の勉強しておいで

233:デフォルトの名無しさん
11/12/14 17:51:35.34
node.jsでは正規表現使えない?
b = a.match(/[0-9a-zA-Z_]/);でエラーが出るんだが

234:デフォルトの名無しさん
11/12/14 18:01:46.49
>>233
勿論、使える

それと、/[0-9a-zA-Z_]/ としたいなら、/\w/ って書いたら?
エラーが出たのならエラー内容を書かないとわからないよ

正規表現についての質問は、他のスレでね

235:デフォルトの名無しさん
11/12/14 18:07:58.71
こんなエラー
Error: Object #<Object> has no method 'match'

236:デフォルトの名無しさん
11/12/14 18:15:00.41
>>235
考えられる原因は、変数 a が String ではない
もしかして、ファイルを読み込んで、それを正規表現で判定してる?
fs.readFile() 等で取得できる data は、String じゃなくて Buffer
だから、data.toString('utf8') して String に変える必要があるよ

237:デフォルトの名無しさん
11/12/14 19:01:05.66
>>233 はマルチ臭いぞ

+ JavaScript の質問用スレッド vol.93 +
スレリンク(hp板)

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が云々言われる
URLリンク(www.dotup.org)


238:デフォルトの名無しさん
11/12/14 19:41:18.31
Rhinoとかnode.jsとかいろいろあるみたいですが、実装が違うだけで言語仕様は同じものなんですか?
基本的には同じだけどそれぞれ拡張されていて方言があるとかですか?
中身以前の質問ですみません

239:デフォルトの名無しさん
11/12/14 22:59:04.91
>>238
言語仕様があるという考えよりもブラウザごとに実装してるポイントが違うので
その最小公約数が Common.js みたいな捉え方を俺はしているが…

サーバーサイドのjsはまたちょっと違うから rhino はサーバーサイドなのか?
Javaでやるなら tomcat とか使いそうな印象があるが…ちょっと俺は知識不足で
上手く説明できないんだけど…

240:デフォルトの名無しさん
11/12/14 23:04:33.72
最大公約数: greatest common divisor
最小公倍数: least common multiple

最大公約数の間違いだな。ボケてますな駄目ですな…

241:デフォルトの名無しさん
11/12/14 23:17:41.60
どちらかといえば最小公倍数だと思うが

242:デフォルトの名無しさん
11/12/14 23:25:45.60
最大公倍数だお

243:デフォルトの名無しさん
11/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
11/12/15 07:49:46.57
どうもありがとうございますm(_ _)m

245:デフォルトの名無しさん
11/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 URLリンク(localhost:3000)
と入力すると
console.log(x[2]);
の部分でエラーが起こります。
解決方法はないですか?


246:デフォルトの名無しさん
11/12/15 18:35:13.70
var str = new String("hoge=node");
これ実際に動かしてみろよ

247:デフォルトの名無しさん
11/12/15 21:03:22.26
>>246
URLリンク(www.dotup.org)
同じようにエラーが出ます

248:デフォルトの名無しさん
11/12/15 21:09:20.47
matchをstring以外に使ってエラーが出たとマルチポストしてた人か

249:デフォルトの名無しさん
11/12/15 21:14:43.29
このerrorさえ取り除ければなんとかなると思うんです

250:デフォルトの名無しさん
11/12/15 21:22:33.52
>>247
テメーの書いた正規表現がクソ
hoge=nodeにマッチしないからxがnullになって落ちる
あとnew String(req.body)を使うより'' + req.bodyのほうが3倍速い

251:デフォルトの名無しさん
11/12/15 21:29:36.81
Node.js のサイトがリニューアルしたな
v1 リリースも近いのかな

252:デフォルトの名無しさん
11/12/15 21:35:27.63
>>250
5行目の
console.log(req.body);
を見ると
{}hoge: 'node'}
となっているので
var reg = /{(\S*):\s'(\S*)'/;
としたのですがダメなのですか?

253:デフォルトの名無しさん
11/12/15 21:39:39.01
>>252
試しに、console.log(String(req.body)); と打ってごらん。それが答えだ

254:デフォルトの名無しさん
11/12/15 21:46:37.58
出来ました
けどObjecktと表示されてしまいますね・・・
どうにかならないでしょうか?

255:デフォルトの名無しさん
11/12/15 21:55:33.65
>>252
ああ、expressを使ってるから飛んできた時点でもうオブジェクトになってんのか
それならわざわざ文字列にして正規表現を使うまでもなく、req.body.hogeだけでいいだろ

256:デフォルトの名無しさん
11/12/15 21:57:31.92
>>254
{ hoge: 'node' } の中身、"node" の部分を取得したいのなら

console.log(req.body.hoge); // 'node'

それと、Node.js をはじめる前に、もう少し JavaScript を知ったほうがいいよ

257:デフォルトの名無しさん
11/12/15 22:02:01.13
最近流行りなのかJavaScriptをろくに知らない人がnodeをはじめる。
いいことだけどめんどくさいな。

>>250
はやいけど、newなしのString(str)のほうが見た目分かりやすいと思うが。


258:デフォルトの名無しさん
11/12/15 22:52:39.51
php使いだけどnode.jsにするとどのような恩恵があるのですか?


259:デフォルトの名無しさん
11/12/15 23:30:20.06
>>258
phpで表、node.jsで裏の作業すると捗ります。
node.jsでスクレイピングとかはやめてください。
そのうちpregや再帰が使えないとか愚痴り始めるので。

260:デフォルトの名無しさん
11/12/15 23:33:46.10
>>259さんどうもありがとうございます
リアルタイムな通信に利用はしたいと思っているのでnode.jsは使いたいのですが
phpに出来てnode.jsで実現できないようなことがなければnode.jsのみで構築する事も検討したいのです
全般的にはphpに取って代わるような使い方にはnode.jsは不向きと捉えてよいでしょうか?


261:245
11/12/16 00:11:23.51
もしかしてapp.postで受け取ったものはapp.postの外に持ち出せない?

262:デフォルトの名無しさん
11/12/16 00:12:41.53
>>260
すみません。真面目に答えますね…。
まだ発展途上なのでなんとも言えませんが、
基本的にjavascriptそのままなので、phpのような表示は得意とは言えません。
ただjsdomなどHTMLを扱うライブラリはあります。

nodeはクライアント側jsのajaxのように、イベントリスナでつなぎます。
そしてhttpサーバを介さずスクリプト(node)がhttpサーバーとして、
直接個々のリクエストに答えますので、
httpの特定のURLのアクセスをトリガとするphpとは使い勝手が全く異なります。

非同期処理であれば真価を発揮しますが、逆にそれが必要でないなら、
php+apacheなどの方が楽に構築できると思われます。


263:デフォルトの名無しさん
11/12/16 00:21:36.44
>>262
ご親切な対応ありがとうございます
リアルタイム名部分のみnode.jsに任せて
それ以外の部分はphpを使ってみます

264:デフォルトの名無しさん
11/12/16 12:57:19.46
まさか、Node.js を CGI とかそんな形で使おうとしてないよな
Node.js 上で PHP を使おうとか。出来なくはないが・・・
思い過ごしならいいけど

265:デフォルトの名無しさん
11/12/16 13:02:08.93
nodejs上でphpというnpmはあったとは思うがw

266:デフォルトの名無しさん
11/12/16 18:31:35.87
v0.6.6

267:デフォルトの名無しさん
11/12/16 19:30:13.67
ejs内にjavascriptのコードを書いてみたけど実行されない
そういうものですか?
ejsを表示させると共に文字を記入くれって表示させたいんだけど

268:デフォルトの名無しさん
11/12/16 20:23:03.15
>>261
外っていうのは、ブロックの外?
どこかわからないけど、持ち出すことは出来るはず

>>267
どんなのを書いたか教えて

269:デフォルトの名無しさん
11/12/17 12:48:05.58
【ウェブアプリケーションという不幸 】

現在、多くのプログラマ(素人)が
ウェブアプリケーションというものが
ベストな正しい方向だと勘違いしている。

ソフトウェアの作るにおいて
そのアプリケーションに応じた
状態遷移を実装するというのは
基本中の基本である。

その点においてウエブブラウザという
ある状態遷移が実装されているアプリケーションの上に
また別のアプリケーションを実装するのは
論外である。
そこまでするなら普通にアプリケーションを実装
してダウンロードして使って
もらえばいいのである。

ウェブアプリケーションとは
虚構にしか他ならない。

ウェブアプリケーションを
作ろうとしているあなた。
今すぐ普通のアプリケーション
とし設計し始めては
いかがだろう。
そうすればきっと後悔しないですむ。

270:デフォルトの名無しさん
11/12/17 12:48:33.81
HTMLやHTTPを悪者にはしていない。
TCP/IPができあがり、その応用として、ファイルを送ったりするようになった。
ファイルの中身のテキストにデータ構造をもたせ、それはつまりツリー構造なわけだが
その実装としてのハイパーテキスト、つまりHTMLという送る側と送られる側で決め事(プロトコル)
をつくり、画像や音楽など表現の幅を広げることは当然の成り行きだっただろう。
そして、その送る側としてのHTMLファイルサーバ、つまりWebサーバ、送られる側としてのプロトコルの解釈・表示系としての
ブラウザというアプリケーション。
ここまではいい。

だが、そこから先が素人の発想というか、いそがばまわれを忘れた者の愚かな発想。
つまりブラウザ上で、アプリケーションを動かすという発想なのである。

ブラウザというのは、おくられてきたステートレスな通信内容の一瞬の表示手段でしかない。
つまりアプリケーションのためのひとつのパーツなのである。
Windowsでいえば、コントロールのひとつ。(実際WebBrowserというコントロールがある。)JavaならWebClietnだ(これは、ブラウザではないが。)。

包含関係が逆なのである。
ブラウザ上にアプリケーションを作るのは愚かなブームである。


271:デフォルトの名無しさん
11/12/17 13:26:02.94
これがWEBプログラミングの出来ない者の嫉妬ってやつだ

272:デフォルトの名無しさん
11/12/17 13:27:37.76
marutiotu
スレリンク(hp板:158-159番)


273:デフォルトの名無しさん
11/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:デフォルトの名無しさん
11/12/17 15:09:16.77
>>273
"null" を null に

275:デフォルトの名無しさん
11/12/17 16:31:47.00
>>270
はいはい、SSH端末とブラウザは同じレイヤーのもの。
SSH端末でネットのむこうのアプリを使うように
ブラウザでも使う。あとは向こうで続きをやろうなw

276:デフォルトの名無しさん
11/12/17 16:47:43.51
↑なにこいつw

277:デフォルトの名無しさん
11/12/17 17:11:00.05
>>276
コピペ野郎の相手なんて
この程度で十分だろ

278:デフォルトの名無しさん
11/12/17 17:26:26.33
>>276
かまっちゃだめ。
ちょっとやばいからそいつ。

279:デフォルトの名無しさん
11/12/17 17:34:41.33
自演乙

280:デフォルトの名無しさん
11/12/17 17:34:43.37
>>275
キモッ

281:デフォルトの名無しさん
11/12/17 17:38:54.37
>>275
荒すなよキモイ奴

282:デフォルトの名無しさん
11/12/17 18:07:12.44
>>273
>>274 で、null の書き方を指摘したけど
それ以前に、どこにも func() を呼び出すものがない

他にもあるけど、JavaScript の質問スレに行ったほうがいい

283:デフォルトの名無しさん
11/12/17 18:25:20.88
>>282
ということはejsでもjavascriptが利用可能ってことですね

284:デフォルトの名無しさん
11/12/17 18:25:47.24
正式名称はnode.jsなの?それともNode.js?
正しくはNodeなんて書いてあるブログもあるけど、本当は何?

285:デフォルトの名無しさん
11/12/17 18:29:59.97
node.js

286:デフォルトの名無しさん
11/12/17 18:42:15.35
>>284
「そもそも "Node" なの? "Node.js" じゃないの?

当初は "Node.js" と呼ばれていましたが、
「正式名称は "Node" である。ただし曖昧さが出る場合は "Node.js" と表記しても良い」
という旨の記述が本家の Wiki にあります。」
URLリンク(blog.nodejs.jp)

287:デフォルトの名無しさん
11/12/17 18:52:03.26
チャットが作りたいのですが非同期通信のシンプルな程シンプルなサンプルみたいなのどこかにありませんか?

288:デフォルトの名無しさん
11/12/17 19:09:51.67
>>287
手軽に試すなら Socket.IO を使うといいよ
サンプルもそのサイトに書いてあるし、とても短いコード
URLリンク(socket.io)

289:デフォルトの名無しさん
11/12/17 21:08:51.07
node.jsのサンプルと言えばチャットというくらい
サンプルある
githubにも、すぐ動くのがあったし、手元の本でもテスト駆動javascriptのサンプルでチャットが載ってた

290:287
11/12/17 22:13:10.02
express+socket.ioを入れてサンプルコピペでできました


291:287
11/12/17 23:01:26.74
でもサイトを作るごとにnpmでexpressとsocket.ioを入れるのって無駄なんですが
windowsなのでnode.exeの本体が置いてある所に最初npmでexpressとsocket.ioをインストール済みなんですよ

292:デフォルトの名無しさん
11/12/18 16:12:58.02
>>285-286
レスありがとうございます。あと、遅れてすみません
曖昧さを避けるために .js をつけているんですか、知りませんでした

293:デフォルトの名無しさん
11/12/20 09:39:49.16
>>227
find . -iname xxx\*


294:デフォルトの名無しさん
11/12/21 19:13:20.74
node.jsはwebサーバソフトウェアですか?

295:デフォルトの名無しさん
11/12/21 22:44:11.51
webサーバソフトウェアってなんですか?

296:デフォルトの名無しさん
11/12/22 00:25:03.81
apacheにはWebサーバソフトウェアとあるので同じものではないのですか?

297:デフォルトの名無しさん
11/12/22 08:27:37.77
>>296
微妙だがNodeは違うと思う
apacheはソフトウェアだね

298:デフォルトの名無しさん
11/12/22 08:30:13.02
>>1が読めないのか

299:デフォルトの名無しさん
11/12/22 08:51:08.99
>>296
Web アプリケーションサーバではありません。
Apache, Nginx のような HTTP サーバ実装でもなければ、Tomcat のようなアプリケーションサーバでもありません。
Node はあくまでサーバサイドで JavaScript を動かす実行環境です。

300:デフォルトの名無しさん
11/12/22 08:52:36.67
>>298
>>1のどこに答えが書いてあるん?

301:デフォルトの名無しさん
11/12/22 08:56:40.84
>>299
そこまで言って置いてそれは無いわ。
サーバーサイドである必要すら無いんだから。

302:デフォルトの名無しさん
11/12/22 10:32:37.77
>>301
はぁ?>>299はnode.js日本サイトblogの転記だぞ?
それすら否定すんの?
それと「あくまで」サーバーサイドだから

一体どんな回答が欲しいんだよ…

303:デフォルトの名無しさん
11/12/22 10:36:55.14
>>302のURLね
URLリンク(blog.nodejs.jp)
もう、これテンプレに入れたら?

304:デフォルトの名無しさん
11/12/22 11:28:06.26
Web アプリケーションサーバでなければなんて呼べばいいんだ?

305:デフォルトの名無しさん
11/12/22 11:52:42.42
>>304
正直どうでもいいし何でもいいけど、論理的な決まりとしては
サーバーサイドでJavaScriptを動かす実行環境

node.jsでアプリを作って稼働させても根本的概念は変わらない

306:デフォルトの名無しさん
11/12/22 16:33:40.14
JavaScriptをサーバとして動かすためにのnode.jsってことでいいの?

307:デフォルトの名無しさん
11/12/22 16:34:35.24
>JavaScriptをサーバとして動かすためにのnode.jsってことでいいの?
修正
JavaScriptをサーバとして動かすためのnode.jsってことでいいの?

308:デフォルトの名無しさん
11/12/22 17:31:52.91
>>307
全然違くてワロタww

クライアントでJavaScript動かす時は基本的にブラウザ上で動くだろ?
Nodeはサーバー上で動くJavaScript

ただそれだけ
だからアプリケーションサーバーやサーバーソフトウェアじゃないのだよ

技術者ですら、これだけ理解できないのだから
営業には全く理解できないだろうなw

309:デフォルトの名無しさん
11/12/22 17:36:58.15
ここはnode.jsのことばかりだけどstandard i/o可能なjsやrhino jsの話題でもいいの?
と言ってもさしあたり話題にするようなネタはないけど

310:デフォルトの名無しさん
11/12/22 17:42:27.13
>>308
んじゃサーバはどこに行くんだよってなるぜ

311:デフォルトの名無しさん
11/12/22 17:50:51.59
node.jsは特定のサーバーからは独立した単独のスクリプティング環境。

rubyとかperlとかpythonとかと同じ。
node.jsの実体はスタンドアロンのスクリプト実行環境に過ぎないからローカルのシェルスクリプトとして使うこともcgiとして呼び出すことも可能だろう。

ただ開発の方向にしても主な用途にしてもあくまで組み込みのhttpサーバーライブラリを使ってサーバーを組み立てることを想定してるけどな。

一言でいうならnode.jsとはブラウザの中で実行されるのが普通のjavascript処理系をスタンドアロンのスクリプト実行環境にして、そこに組み込みのサーバーライブラリやローカルスクリプトとして必要なIOその他のライブラリをくっつけたもの。

312:デフォルトの名無しさん
11/12/22 18:02:01.10
あと、わからない言ってる人はハードウェアとしてのサーバーとソフトウェアとしてのサーバーの区別がついてないんじゃないかな…

313:308
11/12/22 18:10:02.19
>>310
>>311の通りだ
サーバー上で動いてる以上サーバーはどこに行くんだよ?なんて考え方はないだろ
>>308>>311をよく読め


314:デフォルトの名無しさん
11/12/22 18:49:50.06
node.jsでプロキシ経由で外部サイトにアクセスってできますか?

315:デフォルトの名無しさん
11/12/22 19:07:11.81
WSHのJScriptをウェブサーバ用途に特化させたみたいな?と思っとけばいいんすか?

316:デフォルトの名無しさん
11/12/22 20:31:18.42
>>315
それが今まででは一番近い理解かも知れない
Webサーバ用途に特化…というと微妙に誤解を招く書き方なので
サーバ機で、Webサーバソフトと共に使う用途に特化、という感じか
別にサーバソフトがなきゃ、ちょっとしたJavaScriptの動作環境でしかない

317:デフォルトの名無しさん
11/12/22 20:33:51.69
>>315
大着して言うと、そんな感じかな
クドいようだけどwebサーバーじゃなくてwebサーバー的に利用できる。って感じかな

あくまでScriptは手段とかツールに近いからアプリとは断言したくないんだろうね

318:デフォルトの名無しさん
11/12/22 20:52:20.96
ありがとう
なんとなくわかった

319:デフォルトの名無しさん
11/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:デフォルトの名無しさん
11/12/23 00:34:45.73
んー
nodeはDOM APIを含んでるの?含んでないの?どっちー?

321:デフォルトの名無しさん
11/12/23 00:40:12.14
nodeにDOM APIは含んでいない。
ただし外部ライブラリを読み込む機能は付いているので
DOM APIを提供しているライブラリもあるかもしれない。

それはPerlにDOM APIは含まれていないが、
CPANモジュールを使ってHTML Parserなどで
DOMを操作できるのと同じ事。

322:デフォルトの名無しさん
11/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:デフォルトの名無しさん
11/12/23 00:56:45.27
V8はコマンドラインから実行できる。

324:デフォルトの名無しさん
11/12/23 01:02:34.01
linuxで使いたいですがどうすればいいんですか?

325:デフォルトの名無しさん
11/12/23 01:45:23.48
サーバーサイドという字面に振り回されすぎじゃないのかな。

サーバーサイドの○○というのは、今までクライアント(ブラウザ)でしか使えなかったものをサーバーコンピュータ上でも使えるようにしたよという以上の意味は無い。

現代のサーバーコンピュータの多くはwindowsやunix系OSで構成されている。そしてwindows上で実行可能なものは何であれwindowsを使ったサーバーコンピュータ上で実行可能だし、unix系OSもまた然り。(環境依存のものは除く)

現実的には「サーバーサイド○○」というのは、サーバーコンピュータで使用されているところのwindowsなりunixOS上で(サーバープログラムと連携可能な何らかの形式で)実行可能な○○というのと同義と考えていい。

<<324
nodeのソースコードをダウンロードしてmakeするか、nave等の管理コマンドをダウンロードして実行する。やり方はググれ。

326:デフォルトの名無しさん
11/12/23 01:47:17.91
>>325
アンカーミスった。
>>324 な。


327:デフォルトの名無しさん
11/12/23 02:02:06.54
えー!
node.jsはlinuxじゃ使えないんですか!!
面倒なのは大っ嫌いなので諦めます

328:デフォルトの名無しさん
11/12/23 02:10:44.61
そんな頭でLinuxを使うほうが面倒だと思うんだ

329:デフォルトの名無しさん
11/12/23 02:32:29.12
多分ubuntu入れてるんだろうな

330:デフォルトの名無しさん
11/12/23 02:36:54.44
元々の質問は>>296だし、何でクライアントの話に持っていくんだよ…
クライアントでNodeやる云々はそもそもスレタイ的にスレ違い
Nodeの説明としてはいいと思うけど

331:デフォルトの名無しさん
11/12/23 03:08:19.34
>>296 の質問には多分「違う」と答えるのが適切と思われる。

webサーバーソフトウェアという言葉でどんなものをイメージしているのかは知らないが、おそらく一式をダウンロードして設定を行なって起動すればその時点で完全なwebサーバーとして動作するもののことを言っているのだろう。

何度も言われている通りnodeはあくまでスクリプト(プログラミング言語)実行環境でしかない。
言うなれば「webサーバーソフトウェア」そのものをjavascriptで作るためのもの。

332:デフォルトの名無しさん
11/12/23 03:22:30.42
C#と.Netの関係に似てるかもしれない

333:デフォルトの名無しさん
11/12/23 03:47:08.66
>>314 出来ない

334:デフォルトの名無しさん
11/12/23 04:16:08.58
>>321
外部ライブラリとしてjsdomがあるね。
一部でネイティブライブラリを使ってる。

335:デフォルトの名無しさん
11/12/23 07:26:53.49
webでのクライアントとサーバーと、
osでのクライアントとサーバーがごっちゃになってると思われる。
node.jsに出来ることは、webでのクライアント(ブラウザ内で使われるjavascript)の実行環境にはならず、サーバー(httpサーバー)としての機能を有してる。
osではクライアントもサーバーどっちでもいける。
(例えば、通信を伴わない簡単なファイル変換ソフトとかも書けるし、
ソケットレベルでの操作で汎用サーバーアプリにもなりうる。
他にもシェルスクリプト代わりとしても使える。)

一般的な使い方はhttpサーバーとしてなので、まずはそこから始められたし。

336:デフォルトの名無しさん
11/12/23 08:03:23.81
つまらん用語の事で伸びてた。

337:デフォルトの名無しさん
11/12/23 13:04:41.23
>>333
node.jsはプロキシ経由での外部サイトのアクセスは出来ないのですか。残念です。

338:デフォルトの名無しさん
11/12/23 13:37:29.62
>>335のような奴らは無駄に話が長いだけで中身がない。くだらないことを長々と

>>334
jsdomでjqueryを使ったり出来るから便利だよね

>>337
俺はわからんが>>335みたいな奴ならわかんじゃね?w
rubyやphpでさえ出来るからな

339:デフォルトの名無しさん
11/12/23 13:45:37.87
↑何しにきたの?おまえw

340:デフォルトの名無しさん
11/12/23 14:12:03.04
何だか議論をしているところをぶった切り申し訳ないんだけど、
process.nextTick() の使い道がよくわからないです。

341:デフォルトの名無しさん
11/12/23 14:31:29.52
setTimeout(f,0)
みたいにするぐらいならそれつかえって書いてあったぞ


342:デフォルトの名無しさん
11/12/23 15:03:39.69
>>341
そう書いてありますね。
気になったのは、setTimeout(fn, 0, arg)でargを渡せるけど、process.nextTick(fn, arg)とは出来ないことです。

343:デフォルトの名無しさん
11/12/23 15:18:12.92
>>342
setTimeoutでもそうだけどargの必要性あんの?
setTimeout(function () {
fn.apply(this,[arg])
},0);
ってすりゃほぼ同じ意味なのに

344:デフォルトの名無しさん
11/12/23 15:31:37.97
setTimeout(function () {
 fn(arg)
},0);

これでいいだろ

345:デフォルトの名無しさん
11/12/23 15:52:46.88
>>343
0点。

346:デフォルトの名無しさん
11/12/23 15:59:51.23
>>345
お前の評価なんざ求めてねぇw

347:デフォルトの名無しさん
11/12/23 16:11:08.79
>>343,344
function (i) {
setTimeout(arguments.callee, delay, ++i);
}
わたしは、こういう書き方することがあるので、第3引数があると便利に思える

348:デフォルトの名無しさん
11/12/23 16:16:32.22
>>346
this の値が意図しない値になってるだろ。

>>347
arguments.callee は非推奨になるから。
関数本体からのみ参照できる名前を付けて代替した方がいい。

349:デフォルトの名無しさん
11/12/23 16:27:34.55
>>338-339の流れにワロタww


350:デフォルトの名無しさん
11/12/23 16:31:26.93
>>348
thisはグローバルオブジェクトだろ。

351:デフォルトの名無しさん
11/12/23 16:57:40.05
っていうか 第3引数があれば、どこかから渡されてきた謎のfunctionをそのままsetTimeoutできるじゃん。

352:デフォルトの名無しさん
11/12/23 17:13:56.46
第3引数をセット出来る時点で渡す値は解ってるんだから
別に第3引数が無くて困る事は無いだろ
>>347の事例だってクロージャ使えば値の束縛は可能なんだし

>>348
>this の値が意図しない値になってるだろ。
意味わからん。一般的な使い方だとどちらもグローバルオブジェクトだろ
StrictModeの時は確かfunction内がglobalじゃなくなったと思うが
その時の話しをしてるの?
まぁどちらにせよsetTimeoutから呼び出される関数の
this値をセットしてるんだから結果は一緒だろうけど

353:デフォルトの名無しさん
11/12/23 17:18:44.29
そんなにそんなに焦るなってよw

354:デフォルトの名無しさん
11/12/23 18:37:53.70
>>352
だからsetTimeoutする時にいちいちその場でクロージャを生成しなくてもいいように第三引数があるんじゃないの?
クロージャを無駄に生成せずにすめばそれだけプログラムのネストも浅くなるし、多段のコールバックも書きやすくなるんじゃない?

355:デフォルトの名無しさん
11/12/23 18:42:22.22
setTimeoutに第三引数など無い。

356:デフォルトの名無しさん
11/12/23 19:09:42.19
荒れてんな

357:デフォルトの名無しさん
11/12/23 19:12:04.67
arguments.calleeなくなるの?

358:デフォルトの名無しさん
11/12/23 19:17:06.62
なくなりますん

359:デフォルトの名無しさん
11/12/23 19:18:40.72
>>354
それは確かにそうだが話しの元は>>342であって
第3引数を設定できない事が気になるような材料でもないだろって事だよ

>>355
HTML5からはちゃんと仕様としても定義されてるし
NodeのsetTimeoutに関してはちゃんと定義されてるぞ

360:デフォルトの名無しさん
11/12/23 19:41:36.74
何気なく質問しただけで、こんなことに・・・

361:デフォルトの名無しさん
11/12/24 11:38:34.08
何気なく質問するだけで物凄い勢いを増す
スルーされるより全然いいでしょw
みんな注目してるんだなぁ

362:デフォルトの名無しさん
11/12/24 11:48:39.39
Node製のサイトはまだまだ少ないけど、それなりには注目されてるんだな

ホスティングサービスはどこ使ってる?
それとも自分でサーバ用意してる?

363:デフォルトの名無しさん
11/12/24 11:50:58.05
これってサーバーサイドをJavaScriptで書くってことは
今までのウェブアプリ全部作り直しってことだよね?

364:デフォルトの名無しさん
11/12/24 11:51:21.22
本でサンプルを入力してるんだけど
require.paths というのはもう使われてない
NODE_PATH でって言われて
NODE_PATH ='honya/lib','honya/deps';
ってやってるんだけどlibにおいてるクラスがみつからないって言われてしまう
v0.6.6とv0.4.7でやってみました
パスの指定がなにか間違ってるんでしょうか?


365:デフォルトの名無しさん
11/12/24 12:00:22.50
>>363
PythonからRubyに切り替える時だって当然全部書き直しだろ。
何をアタリマエのことを。

366:デフォルトの名無しさん
11/12/24 12:01:36.77
なぜ全てのウェブアプリをnode.jsで書き直すの?node.jsが向いているものとそうでないものとがあるから
向いていないものまでnode.jsを採用する必要はなくなくない?

367:デフォルトの名無しさん
11/12/24 12:03:39.88
>>366
> なぜ全てのウェブアプリをnode.jsで書き直すの?
誰がそう言ったの?

> 向いていないものまでnode.jsを採用する必要はなくなくない?
そうだね。

368:デフォルトの名無しさん
11/12/24 12:04:12.38
前の仕様は次には跡形も無くなっているくらいで
まだ本を買うには時期が早過ぎじゃないかと

公式か日本ユーザグループのとこのドキュメントを読むといいよ



369:デフォルトの名無しさん
11/12/24 12:05:26.01
プログラミング本なんてまだ買ってる人いるんだw
1ヶ月でコロッと何もかも変わってしまうことがあるこの分野でw

370:デフォルトの名無しさん
11/12/24 12:06:28.01
node本ってまだ出てなかったと思うが
多分一部取り上げられている記事とかパーフェクトJavaScriptあたりだろう


371:デフォルトの名無しさん
11/12/24 12:10:46.26
>>367
> 誰がそう言ったの?
>>363をそう解釈したっす
そういう意味ではなかったんすね
ごめん

372:デフォルトの名無しさん
11/12/24 12:11:31.58
オライリーが出してたな。
公式が全文公開してるけど、内容は確か0.4あたりだったはず。

373:デフォルトの名無しさん
11/12/24 12:13:21.60
読んでるのはテスト駆動JAVASCRIPTです
たまたま手元にあってサーバサイドのところは読み飛ばしてたんで今読み直してたんです

374:デフォルトの名無しさん
11/12/24 12:16:39.19
>>367
>誰が言ったの?
>>363
>今までのウェブアプリ「全部」
おもっくそ自分で全部って言ってるじゃんw

375:デフォルトの名無しさん
11/12/24 12:26:04.55
363が本当はどういう意味なのか、それは363にしかわからない

376:デフォルトの名無しさん
11/12/24 12:41:02.72
普通に推察すれば今まで自分たちで継続的に開発してきたWEBアプリがあって、
そのWEBアプリをnode.jsで運用するように移行した場合に、
今まで自分たちで作ってきたWEBアプリを全部javascriptで書きなおすのか、
という意味に捉えられると思うよ。

既存の世界中の全てのWEBアプリをnode.js用に書きなおすなんて不毛なことは誰も考えないでしょ。

377:デフォルトの名無しさん
11/12/24 12:51:37.47
自分で作った個々のウェブアプリも、別に全部移植しないといけないわけでもないと思うけど。

378:デフォルトの名無しさん
11/12/24 13:04:03.16
でもさ、なんかの処理をあとから
node.js使いたいってことになったら、
その処理書きなおすんでしょ?

379:デフォルトの名無しさん
11/12/24 13:13:53.04
_人人人人人人人人人_
>わりとどうでもいい<
 ̄YYYYYYYYY ̄

   ヘ(^o^)ヘ
     |∧
     /

380:デフォルトの名無しさん
11/12/24 13:16:22.10
「今までの」「全部」だから「ウェブアプリ」はひとつじゃなく複数を指していると読めるんだよね
で、その作ってきた複数ある個別のウェブアプリをそれぞれ全部作り直ししないといけないのか、って聞いてるように読めるんだよね

381:デフォルトの名無しさん
11/12/24 13:23:48.55
ここまで rhino の話題は無し

382:デフォルトの名無しさん
11/12/24 13:45:19.78
ライノいらないの

383:デフォルトの名無しさん
11/12/24 13:54:04.66
処理の一部を外部化するのにたまに使ってるよ

384:デフォルトの名無しさん
11/12/24 14:07:20.70
ルビー(高速なのでたまに使ってますが)から転向して、ライノはある程度把握しましたが、ライノの細かい挙動このとまでは必要ないので今のところライノ・ネタはありません。

385:デフォルトの名無しさん
11/12/24 14:49:14.36
rhino は2回使っただけで
使うのが嫌になりました。



なぜでしょう?

386:デフォルトの名無しさん
11/12/24 15:06:16.99
>>385
それなぞなぞ?答えは>>382かな

387:デフォルトの名無しさん
11/12/24 15:19:44.96
>>386
ハズレ。ヒント2回

388:デフォルトの名無しさん
11/12/24 15:43:01.57
>>387
Rhino 使ったことない。
俺には、全然わかららいの orz

389:デフォルトの名無しさん
11/12/24 16:32:05.26
>>385
そんなの知ならいの

390:デフォルトの名無しさん
11/12/24 22:52:36.93
>>329
ubuntuはLeeさんだっけかryanさんだったかなのppaで入れても
0.6.3なのだ。素の状態だと0.4.3なんだ…

まぁ10-15分くらい掛ければgitからソース取ってきて
じぶんでビルドできないこともないけど

ほかの鳥はのことはよくしらないの

391:デフォルトの名無しさん
11/12/24 23:10:38.31
ジャバも普通に使えるのでライノでやります
次期ライノ(多分1.8R)はnode.jsも含まれるって聞いたのでさしあたりライノのままで問題も生じません

392:385
11/12/24 23:17:03.17
降参?

393:デフォルトの名無しさん
11/12/25 00:07:03.47
>>390
chris-leaのPPAだな
けどそれらを使うよりnvm等を使った方が良いと思うよ



394:デフォルトの名無しさん
11/12/25 08:50:02.35
>>364
勘違いしてるみたいだけど
NODE_PATH は JS ファイルに書くわけじゃないよ

395:デフォルトの名無しさん
11/12/25 16:58:36.56
var sys = require('sys');
var http = require('http');
var server = http.createServer(
function (request, response) {
response.writeHead(200, {'Content-Type': 'text/plain'});
response.write('Hello World!!\n');
response.end();
}
).listen(8124);
sys.log('Server running at URLリンク(127.0.0.1:8124)');

5行目の「response.writeHead(200, {'Content-Type': 'text/plain'});」
この中の200ってどういう意味があるの?
教えてください

396:デフォルトの名無しさん
11/12/25 17:01:43.70
HTTPステータスコードでは

397:デフォルトの名無しさん
11/12/25 17:06:40.22
>>396
ありがとうございます

398:デフォルトの名無しさん
11/12/25 19:55:18.39
データの保存はkvs?だとかNoSQL的なものがnode.jsにはお似合いなんすか?RDBMSやファイルIOは駄目すか?

399:デフォルトの名無しさん
11/12/26 08:17:03.16
>>398
ダメじゃないが、RDBよりドキュメント志向DBのが遥かに相性がいい
(処理に掛かる時間が圧倒的に違う)
nodeを新規でやるならKVSのがいい
既存DBがRDBでDB再構築がダルければRDBで良いかと

ファイルI/Oでも全然問題なく使える

400:デフォルトの名無しさん
11/12/26 12:13:22.41
どうもありがとう
ファイルIOにしようかなと思ってたけどドキュメント志向型DBはそんなに速いんすか
kvsとは違うっぽいけどMongoDBってのが流行ってるみたいなのでそれ試してみます

401:デフォルトの名無しさん
11/12/27 04:49:59.33
socket.ioのサンプルをいろいろ探してたらexampleディレクトリにもとからはいっていたでござる


402:デフォルトの名無しさん
11/12/27 12:18:11.96
URLリンク(gihyo.jp)
こんな記事でると日本でのmongo利用は極端に減るんだろうなぁ・・・


403:デフォルトの名無しさん
11/12/27 12:34:54.83
記事は新しいけど内容が数年前のものだのー


404:デフォルトの名無しさん
11/12/27 12:45:54.22
pestbinに貼られたのは2011年11月みたいだけど


405:デフォルトの名無しさん
11/12/27 16:59:52.79
どうして「Web Framework: Express」や「Web Sockets: Socket.IO」みたいな機能はデフォで提供されていないの?

406:デフォルトの名無しさん
11/12/27 18:30:52.03
CAも提供してるサービスでデータが飛んだとかあったな
やっぱ規模(データ量)が大きい(多い)とヤバいってのはマジなんだな
まぁ今更SQL文書くのも怠いけどw
Mongoの仕様上防げない気がする
Mongoがこれ以上逝ったら日本では間違いなくNodeは流行らない要因になるな

407:デフォルトの名無しさん
11/12/27 18:47:10.81
>>405
どうしてJavaScriptは、jQueryがデフォで提供されていないの?と似た感じだな

408:デフォルトの名無しさん
11/12/27 19:05:48.80
>>407
ああ、ごめんなさい
サードパーティ製モジュールはnode.jsコアの機能を組み合わせて書かれているんですね
別の言語で書かれたバイナリファイルも含んでいるのかと思ってました

409:デフォルトの名無しさん
11/12/29 02:11:51.17
例えば、コードに debugger を入れたときだけログ出力することは出来ますか?

410:デフォルトの名無しさん
11/12/29 11:40:02.19
質問がよくわからないんだぜ

411:409
11/12/29 14:29:50.62
>>410
debugger;
if (...) {
console.log('#debug');
}
console.log('Hello, world!');

debuggerが、あるときだけ"#debug"を出力するようなことです。出来ますか?

412:デフォルトの名無しさん
11/12/29 15:08:31.53
649 デフォルトの名無しさん [sage] 2011/12/29(木) 14:50:37.28 ID: Be:
学生プログラマ日本一決定戦(予選は社会人も参加可)
URLリンク(codevs.jp)
現在予選開催中
応募締切 2012.1.6 12:00

おもしろいことやっているじゃん。誰か今から参加しろよ。

413:デフォルトの名無しさん
12/01/03 00:52:30.05
52 :Name_Not_Found [↓] :2012/01/02(月) 14:08:53.32 ID:???
マジこのペースでどんどんAPIが増えてったら
仮にブラウザ間の仕様さが0になっても
覚えて使いこなしきれるかは微妙

そういえばWEBGLって結局どうなるの?
もう他の対抗APIとかは金輪際でなくて
WEBGL一本でしばらくいくことは決まったの?
それなら覚えるんだけど
53 :Name_Not_Found [↓] :2012/01/02(月) 14:42:42.41 ID:???
そこでライブラリの乱立ですよ。
そしてライブラリの使い方しか知らない人間が量産されていく…
54+1 :Name_Not_Found [↓] :2012/01/02(月) 14:47:21.67 ID:???
ライブラリ使う人が困るんならまあそれは仕方ないと思うけど
5年後くらいに昔のJavaScriptはわかりやすくてよかった
今はライブラリ覚えないとやっていけないってなりそうで怖いわー
55+1 :Name_Not_Found [↓] :2012/01/02(月) 16:37:49.89 ID:???
>>49
spanだと戻すとき大変だから、適当なタグ名にするのがいいんじゃないかな。
document.links[0].outerHTML = document.links[0].outerHTML.replace(/^<[aA]/, '<aback').replace(/<\/[aA]>$/, '</aback');
こんな感じかな
56 :Name_Not_Found [↓] :2012/01/02(月) 16:47:14.55 ID:???
>>54
結局、同じロジックを何度も書くことに疲れ果てライブラリに辿り着き、皆が同じ様なコードを書く。
これはどの言語でも共通の進化の過程。

しかし、最初からライブラリに頼ってきた小わっぱ達とは地力が違う為、コーディングの姿勢に漂う大人の余裕。
いざ困難に直面しても、涙目の小わっぱを尻目に多彩なテクニックを駆使して解決策を導く職人技。
そして仕様を知り尽くした上で完璧なチューニングを施し、パフォーマンスで他を圧倒するダンディズム。

このスレの回答者なら様々な面で格の違いが滲み出る。
ただし、>>55 は精進が必要な様だが。

414:デフォルトの名無しさん
12/01/03 00:55:07.60
>>398
現状のnode.jsに適してるのは、ハイパフォーマンスが要求されて
かつシンプルなアプリケーションやAPI(かつCPUバウンドでない)だから、
結果的にKVSの方が目的に合う可能性が高い。

個人的にはnode + mysql handlersocketとかは、結構期待してるんだけど、
人柱様達に任せたい。

サーバサイドもクライアントサイドもjsで書けるようになる
事によるメリットを活かして、何でもnodeで書けばいいじゃん、
に至るには現状のシングルループ指向からの転換を経る必要があると思う。


415:デフォルトの名無しさん
12/01/03 01:02:09.04
それは、javaとか.netでしょ普通

416:デフォルトの名無しさん
12/01/03 01:14:41.51
>>415
マルチプロセスはclusterとかで既に出来るけど、
CPUバウンドかIOバウンドかバランス考えながらコード書くのはめんどいのよ。
接続数の数だけループ回す必要は無いとは思うけど。
じゃあどういう単位で、というと更にあれだけど。


417:デフォルトの名無しさん
12/01/03 01:56:48.39
外部の計算環境も考慮することつまり The Networking is the Computing. を掲げるならそうかもね。

418:デフォルトの名無しさん
12/01/03 11:49:55.06
これからプログラミング勉強しようと思うのですが
phpだったらJavaScriptの方が勉強したほうがいいですか?

419:デフォルトの名無しさん
12/01/03 13:46:26.20
単純に勉強するだけならPHPちょっとやってサーバサイドの仕組みを覚えてからjavascript
仕事でやるならPHPしっかりやって合間にjavascript

420:デフォルトの名無しさん
12/01/03 21:33:28.60
SPAだとAPIの集合みたいにアプリ書けるけど、SEO考えるとねぇ

421:デフォルトの名無しさん
12/01/06 16:06:17.55
os.networkInterfaces() って,
node.exe だと動かなくね?

422:デフォルトの名無しさん
12/01/06 18:07:27.98
>>421
いま手元にWindowsないから確認できないけど、それNode 0.6?0.4にはないから動かないよ
良かったらOSのバージョン教えて

423:421
12/01/06 18:30:56.20
>>422
OS は Windows 7 Ultimate 32bit SP1
node.exe が v0.6.6

var os = require('os');
console.log(os.networkInterfaces());

を実行し,結果は

{}

が表示されるだけ.直後の ipconfig は次の通り

Wireless LAN adapter ワイヤレス ネットワーク接続:
リンクローカル IPv6 アドレス. . . . : fe80::1c55:5be6:42a6:e86c%11
IPv4 アドレス . . . . . . . . . . : 192.168.3.4
サブネット マスク . . . . . . . . : 255.255.255.0
デフォルト ゲートウェイ . . . . . : 192.168.3.1

イーサネット アダプター ローカル エリア接続:
メディアの状態. . . . . . . . . . : メディアは接続されていません

Tunnel adapter isatap.{96146F13-15AE-4A58-8112-E19230F1EB95}:
メディアの状態. . . . . . . . . . : メディアは接続されていません

Tunnel adapter Teredo Tunneling Pseudo-Interface:
IPv6 アドレス . . . . . . . . . . . : 2001:0:4137:9e76:4a1:85a:2431:7504
リンクローカル IPv6 アドレス. . . . : fe80::4a1:85a:2431:7504%14
デフォルト ゲートウェイ . . . . . : ::

Tunnel adapter isatap.{28E9F6EE-080F-4498-8C64-120C589B0F49}:
メディアの状態. . . . . . . . . . : メディアは接続されていません

424:デフォルトの名無しさん
12/01/06 19:16:12.54
>>423
Windows XP、7 で試したら空のオブジェクトが返ってきた
getNetworkInterfaces()も試したけど「networkInterface()使え」って怒られて、同じように空のオブジェクトが返ってきた
まだ未対応なのかも

425:421
12/01/06 20:13:14.22
なるほど,俺だけじゃないんだな
情報㌧

426:デフォルトの名無しさん
12/01/07 07:32:24.10
apacheより沢山のアクセスを捌く事が得意と記事見たんだけど、
DoS攻撃にも強いって事?
開発コスト的な事を置いておくとしたら、
可能ならapacheよりnode.js使った方が良いって事?

427:デフォルトの名無しさん
12/01/08 20:42:41.46
>>426
Webサーバとしてのパフォーマンス比較ならnginxでええよ。

DoS対策はまた別の話で、
Apacheでもnginxでもnodeでも別途必要だと思うけどね。

428:デフォルトの名無しさん
12/01/08 23:29:37.54
javascriptでcgiしたいんだけどおとなしく別の言語にしたほうがいいのか?

429:デフォルトの名無しさん
12/01/09 02:23:19.54
>>428
初学者で無駄な苦労したくないなら、まだPHPとかRubyがいいよ。
nodeはまだまだバージョンアップ激しいし。

430:デフォルトの名無しさん
12/01/09 16:17:14.23
>>429
ありがとう
fx拡張ちょくちょく作るくらいにはjs知ってるけど、rubyとかは見た目キモくて触った程度しかない
c++も11で使いやすい感じになってきたので他の言語も色々試しつつ決めようかな

431:デフォルトの名無しさん
12/01/09 16:49:25.07
さぁみんなぁ~~~~俺のメタ言語に進化した散文詩をきいてくれたまえぇ~~
URLリンク(detail.chiebukuro.yahoo.co.jp)


432:デフォルトの名無しさん
12/01/09 18:43:58.51
>>430
なんでC++が出てくるの。

433:デフォルトの名無しさん
12/01/09 19:36:30.38
>>432
動的か静的かなんて関係なく、自分が使いやすい言語を使うだけなんで
いろんな言語触るの楽しいしね

434:デフォルトの名無しさん
12/01/09 22:50:47.44
>>430
js自体の経験がそれなりにあって、
英語の情報読むのも苦にならなければ、
nodeから始めるのもありかもね。

それでも環境として枯れてないから、
どちらかといえば生PHPで小物書いたり、
RubyでRailsとかのが、
楽にサーバサイドプログラミングを学べるとは思う。

学習曲線と仕事での需要を無視出来るなら、
どの言語で何を初めても無問題。


435:デフォルトの名無しさん
12/01/10 00:37:57.41
そうするとnode.js触ってる人は、一体何に使ってるの?

436:デフォルトの名無しさん
12/01/10 02:13:42.76
俺は WebSocket を使ってみたくて いろいろ調べてたら
Node に行き着いた

socket.io 最高です^^

437:デフォルトの名無しさん
12/01/10 04:22:16.14
>>435

>>414
>>436
もしくは、乗るしかない、このビッグウェーブに

438:デフォルトの名無しさん
12/01/10 04:24:20.73
現状、実務レベルで使ってるのは一部の先進的なソーシャルアプリ系企業とか、
それぐらいじゃないかね。

439:デフォルトの名無しさん
12/01/10 09:03:34.19
うちもOKもらって使ってる。ソーシャルアプリ全く関係ないけどw

440:デフォルトの名無しさん
12/01/10 09:35:24.58
俺は単にブラウザ外でjs使いたいがために使ってるな

441:デフォルトの名無しさん
12/01/11 01:06:37.13
ブラウザ外で使うのなら、wscript.exeでいいのでは?
もちろんJavaScript(JScript)が使える。

442:デフォルトの名無しさん
12/01/11 01:46:26.42
皆がWin使ってるわけでもあるまい

443:デフォルトの名無しさん
12/01/11 02:12:36.29
すべてのJavaScriptが同じだと思うなよ

444:デフォルトの名無しさん
12/01/11 08:09:36.00
>>441
JscriptはJavaScriptではないだろ

445:デフォルトの名無しさん
12/01/11 09:06:32.24
>>441
俺Macだし、npmも使いたいんだよ

446:デフォルトの名無しさん
12/01/12 00:30:54.36
>>444
どっちも同じECMAScriptだよ

447:デフォルトの名無しさん
12/01/13 19:26:48.98
node-mysqlなんかでssl接続するにはどうしたらいいのだ?
他のライブラリ見ても出来ないしもしかして本格的にNode.jsでmysqlを使ってる人ってすくないのだろうか?

448:デフォルトの名無しさん
12/01/13 23:52:05.30
libmysqlでも用意している機能が、パラメータで指定して使えないのか。
sslってwebサーバーのssl専用ポートならコマンドラインでは、
URLリンク(www.atmarkit.co.jp)
URLリンク(co-akuma.directorz.jp)
こんな感じで通せる。
mysqlサーバーがネゴシエーションの一番はじめで判別しているなら、
アドホックに対応できるだろうが、仕様は分からない。

449:デフォルトの名無しさん
12/01/14 00:50:00.14
mysql client の c api使ってるので、そのまま定数使えるみたいだよ。

URLリンク(github.com)
var flags = Client.defaultFlags |constants.CLIENT_SSL;

URLリンク(github.com)
var client = mysql.createClient({ user: 'root', password: 'root', flags: flags, });


450:デフォルトの名無しさん
12/01/14 03:57:16.78
と言う事はflagsを指定してCAなんかのファイルはmy.cnfに設定すればいけるんかなー
とりあえずそんな感じでやってみるです
サンクス!


451:デフォルトの名無しさん
12/01/17 20:26:44.30
node0.7からマルチスレッドでマルチループが出来る、
isolatesが使えるようになったぞ。

452:デフォルトの名無しさん
12/01/17 21:23:20.35
[nodejs] Node v0.7.0
URLリンク(groups.google.com)
2012.01.16, Version 0.7.0 (unstable)
* Upgrade V8 to 3.8.6
* Use GYP build system on unix (Ben Noordhuis)
* Experimenetal isolates support (Ben Noordhuis)
* Improvements to Cluster API (Andreas Madsen)
* Use isolates for internal debugger (Fedor Indutny)

453:デフォルトの名無しさん
12/01/17 21:32:55.40
>>452
おお、WAFじゃなくてGYPになったのか

454:デフォルトの名無しさん
12/01/18 00:19:53.69
ビルドにPythonいらなくなるのか、
と思ったけどGYPもPython製だったでござるの巻。

455:デフォルトの名無しさん
12/01/21 18:22:38.12
node.jsの分割って出来ますか?
うまく説明できないのですが、例えば、サイトにチャットやゲームを追加したいときに
PHPだとchat.phpやgame.phpを作ってアップロードすればいいだけですが
node.jsでも後からchat.jsとgame.jsをアップロードするだけで反映させることって出来ますか?

456:デフォルトの名無しさん
12/01/21 21:35:04.42
>>455
一応可能といえば可能。
ただPHPと違ってnodeの場合実行する必要がある。

やるとすればnodeで特定ディレクトリ以下を監視しておいて
変更があればよみに行ってアップされた物を実行するだけ。


457:455
12/01/21 22:23:18.95
>>455の続きです
リクエストを受け取ってレスポンスを返すだけのindex.jsがあります
現状だと、下記の処理を行う際に③のファイルのプログラムを実行させられなくて
追加したいプログラムをindex.jsに書き足しています
①リクエストを受ける
②該当するファイルを呼び出す
③ファイルがnode.jsならファイル内のプログラムを実行 <= この部分を何とかしたい
④結果をレスポンスで返す

458:デフォルトの名無しさん
12/01/21 23:11:24.46
cgiとして呼び出すとか

459:デフォルトの名無しさん
12/01/22 03:41:03.90
node.jsよく知らんが不便なんだな

460:デフォルトの名無しさん
12/01/22 04:59:01.74
javascriptだ死ね

461:デフォルトの名無しさん
12/01/22 19:01:13.32
>>390
ppaに0.6.8来てたわはー
しかしバックポート何だそれ旨いのタコスなのみたいなかんじでワロタ…


ワロタ…

462:デフォルトの名無しさん
12/01/23 01:17:49.28
Node.jsってhashdosに対する防御法ってあるの?


463:デフォルトの名無しさん
12/01/23 08:21:08.70
V8は対策済みじゃなかったっけ?

464:デフォルトの名無しさん
12/01/23 09:12:08.87
URLリンク(blog.nodejs.org)

2012.01.19, Version 0.6.8 (stable)

・ Numeric key hash collision fix for V8 (Erik Corry, Fedor Indutny)

465:デフォルトの名無しさん
12/01/23 09:15:13.64
昨年末に対策してたんじゃなかったかな。
だから年明けリリースの0.6.7あたりからが対策済みだったりするのかも
(どこから対策済みかわからん)


466:デフォルトの名無しさん
12/01/23 09:16:33.85
更新しておけばよかったorz

467:デフォルトの名無しさん
12/01/25 00:14:42.06
>>457
express前提で。
urlとのマッピングまではやってないけど、
適当にもにょれば適当になる。
-----
/routes/boardIndex.js
-----
exports.boardIndex = function(req, res, next){
//hogehoge
}
-----
app.js
-----
var fs = require('fs');
var routes = fs.readdirSync('./routes/');
var routesToken;

for (var i = 0; i < routes.length; i ++) {
routesToken = routes[i].split('.');
exports[routesToken[0]] = require('./routes/' + routes[i])[routesToken[0]];
}

app.get('/:boardUrlName([a-z]+)/', route.boardIndex);
-----
で/routes/boardIndex.jsが呼ばれる的な。

468:デフォルトの名無しさん
12/01/29 02:03:48.28
あと本番環境では普通動かさないだろうけど、
ファイル更新を検知して自動でサーバ再起動してくれるツールもある。

npm install superviser

して

superviser app.js


469:デフォルトの名無しさん
12/01/30 06:30:50.75
>>461, >>464
ppa 0.6.9-2 に更新確認。一週間でマイナーバージョンが1
上がって行ってるかんじだな…

470:デフォルトの名無しさん
12/01/30 07:49:13.21
V8がDartに対応したら、nodeもDartで書けるようになるのかな?

471:デフォルトの名無しさん
12/01/30 10:30:34.58
V8はJavaScript実行エンジンなんだから、Dart用の実行エンジンが別にChromeに載るのでは

472:デフォルトの名無しさん
12/01/30 15:29:23.37
Dartコンパイルして突っ込んでみたけど
バックエンドでV8使ってたよ
結局V8方言ってことじゃないのかな、型付きの

473:デフォルトの名無しさん
12/01/30 18:19:12.08
node.jsをC++に翻訳して動かしたらもっと早くなるの?
そういうの無理なん?

474:デフォルトの名無しさん
12/01/30 18:20:25.02
よく考えたらv8使ってるんだから
元のコードはC++で書かれててjs側で呼び出してるってことか?
そこまで単純じゃない?v8自体のエンジンもカスタマイズしてるのかな?

475:デフォルトの名無しさん
12/01/30 20:35:34.50
基本はそんな感じ
まぁソースは公開されてるから読んでこれば良い

v8のカスタマイズは普通せんだろ
カスタマイズしたらv8のアプデ時にめんどくさい事になる


476:デフォルトの名無しさん
12/01/30 22:43:46.08
極端な例、素数判定にエラトステネスの篩をJSで書いてたとして
そこをC++で置き換えて返すと書くと約10倍速くなる
でもnodeなんて使ってる時点で、ボトルネックはネットワークの方にあるのがほとんどで
頑張って報われるかというと微妙 (Googleみたいに大規模+高負荷だと報われる)

C++得意だから、nodeはあくまでインターフェースに徹するっていうのは方向性としてアリ
公式の拡張サンプル良く出来てるから、一度拡張書いてみるといいよ

477:デフォルトの名無しさん
12/02/01 01:02:20.28
nodeという名前からして、
CPUヘヴィーな処理は別の言語に任せて、
糊に徹しろよ、的な趣は感じる

478:デフォルトの名無しさん
12/02/02 19:35:27.07
Nodeなのに標準でDOMが扱えないとか

479:デフォルトの名無しさん
12/02/02 21:34:52.59
domはブラウザ側の実装依存が強いんじゃないかな?
何らかのC++のアプリに組み込むにしてもdomの出番はなさそうだ

強いて言うとxml parserがあると助かるくらいじゃない?

480:デフォルトの名無しさん
12/02/03 00:49:13.09
jsdom便利だけどバージョン変わるとよくエラー出る
とくにjquerify便利なんだけどよく死んでる

481:デフォルトの名無しさん
12/02/16 08:36:27.59
初心者スレってないんでしょうか?さっき知りましたnode.js

これって、ゲームとかで使うのにいいんですかね?

現在のイメージではhtml5でflashの代わりにゲームみたいな

コンテンツを作るのに便利な言語って思ってますが違います?

482:デフォルトの名無しさん
12/02/16 09:01:01.72
まずはJSの勉強しろ
ゲーム系するならhtml5とcanvasも必須

483:デフォルトの名無しさん
12/02/16 09:11:17.60
初心者スレはみつからないなあ
関連スレはあるけど

サーバーサイドJavaScript総合
スレリンク(php板)


484:デフォルトの名無しさん
12/02/16 13:08:42.64
ゲームやるなら enchant.js でいいんでないの?
まぁ使ったことないんだけどw

485:デフォルトの名無しさん
12/02/16 13:50:43.11
JavaScriptに#includeみたいなのないよね
どこで何が使われてるのかどこで宣言されてるのか、依存関係わけわからんくならんの?

486:デフォルトの名無しさん
12/02/16 14:23:45.73
nodejsならmodule使うから明示的でわかりやすいと思うが
Webなら自分で管理しろってだけだな


487:デフォルトの名無しさん
12/02/16 15:49:44.70
CoffeeScript使うとモジュール化しやすいぞ
まあ結局、命名規則に依存なんだけどな
クライアントでrequire.jsみたいなのも、あることはあるが

488:デフォルトの名無しさん
12/02/16 18:08:38.51
クライアントサイドだったらミニファイするしな

489:デフォルトの名無しさん
12/02/16 21:41:38.48
JSのNudeと聞いてきました

490:デフォルトの名無しさん
12/02/17 23:59:57.30
農奴と聞いて

491:デフォルトの名無しさん
12/02/20 13:58:09.67
マルチコアで効率的に動くようになった?
まだ?

492:デフォルトの名無しさん
12/02/20 14:06:15.30
isolatesは廃止になりました


493:デフォルトの名無しさん
12/02/20 18:24:24.93
V8側はマルチコアいけるのにだめなの?

494:デフォルトの名無しさん
12/02/20 18:48:59.53
今はまだ時期じゃないっぽい

URLリンク(d.hatena.ne.jp)
>追記(2012-02-05) Isolateの組み込みは一旦取りやめに
>先日NodeのリーダーがRyanからIsaacになったというニュースがありましたが、
>そのIsaacさんのPOSTによると、どうもIsolateはまだまだ不安定で内部も複雑になってしまう為
>これに注力しても労力の割に得るものは少ないとの判断で、一旦これを取りやめ、
>代わりに Domains 機能に力をいれるそうです。
>ただ、Isolatesを諦めたわけではなく優先順位の変化なだけで将来的にNodeに組み込まれる予定は変わらないっぽい、ただそれが次のメジャーバージョンであるv0.8.0の時ではなくなったということのようです。
>まぁ、機能的にはIsolatesはマルチプロセスのforkで代替できるし、正直Domains機能のほうが面白そうなので全く問題なし。



495:デフォルトの名無しさん
12/02/20 18:52:10.85
>>493
イベントモデルでのIOの多重化を選択したのは良かったけど
何か考えがあったのか、それとも実装が楽だったからか
ともかくnode.jsはシングルスレッドベースで作られた

496:デフォルトの名無しさん
12/02/21 23:34:21.74
console.log() って,
printf() みたいに使えるのかと思ったけど
%X 認識しないんだな

さて,どうやって 16 進数で表示するかな・・・

497:デフォルトの名無しさん
12/02/22 09:11:27.44
number.toString(16)

JSの勉強しろ


498:デフォルトの名無しさん
12/02/22 09:52:05.04
そういえばjqueryのプラグインにformat文使えるやつあったな
あれnode.jsでも動くんかな??

499:496
12/02/22 11:25:01.84
>>497


でも桁数が揃わない・・・
もっと勉強してくるわw

500:デフォルトの名無しさん
12/02/22 12:30:25.83
0埋めとかはslice使えばできるよ

501:496
12/02/22 13:32:56.51
>>500
おお,こんな方法があったのか

var n = 10;
console.log('HEX: %s', ('0' + n.toString(16).toUpperCase()).slice(-2)); // HEX: 0A

おまいらのおかげで出来たよ,ありがとう!

502:デフォルトの名無しさん
12/02/23 01:16:09.43
node.exe って 64bit の Win7 だとダメとかあるか?
nodejs.org のサンプルさえ ちゃんと動かない
Win7 32bit のノートなら動いた

503:デフォルトの名無しさん
12/02/23 01:35:21.18
URLリンク(stackoverflow.com)
2/10に同じ質問してる人がいるが、その人も解決してないみたいだね。
試しに少し古いバージョン使ってみては?
URLリンク(nodejs.org)
vc++のruntimeとか他のソフトでたまに引っかかることがあるが、必要ないんだよね?

504:502
12/02/23 01:47:17.45
>>503
なるほど,既知の問題だったのか
たまたまあった 0.6.7 もやってみたがダメだ

その後調べてたら
URLリンク(nodejs.jp)
の v0.7.4 のところに x64 ビルドをサポートした旨を発見

URLリンク(nodejs.org)
から node.exe を落としてきて,それで実行したらサンプルは走った

同じディレクトリにある node.lib と node.pdb ってのが謎だが,
動いたからいいかw

505:デフォルトの名無しさん
12/02/23 13:50:41.80
nodeにリンクする開発者向けのファイルだね
win7 64bit環境によって、32bitの共有ライブラリが足りなくて、
動かないパターンなのかな。

ともあれ動いてよかった。

506:デフォルトの名無しさん
12/02/23 23:58:09.40
node.js愛してます
というかJSしかわからない

ってことで今ブラウザあればnode.js使ったアプリ作れる環境作ってる
んで作ったものは自動でworker化するようなもの作ってる

将来的にiPhoneのリマインダー的なもの作りたい

507:デフォルトの名無しさん
12/02/24 15:30:35.86
win x64 用の msi キタ (unstable

508:デフォルトの名無しさん
12/02/24 23:47:46.64
NetBSD 5.1 でコンパイルしてみたけど
v0.6, v0.7 ともにダメだね

509:デフォルトの名無しさん
12/02/26 14:57:11.22
nodeをv0.6.11にしたらnode-webworkerが動かなくなりました

webworkerを書き換えて
sys→util
require.paths→消して他のrequireをフルパスで書き換え
process.binding→消す
のようにしたらエラーは出ないのですがworkerが全く動いていません

他に原因はあるのでしょうか?

510:デフォルトの名無しさん
12/02/26 15:33:11.60
node-webworkerは現在既に開発が停止しております(最新版はサポートされません
マルチプロセスなら組み込みのclusterやスレ上記のisolateをお使いください

511:デフォルトの名無しさん
12/02/26 15:48:21.89
どうしても使いたいなら自分でgithubからフォークして
自分でメンテするなりなんなりすればいいが
node-webworkerの人が開発する気力失せたのはclusterのせいだから
素直にclusterを使うのがいい

512:デフォルトの名無しさん
12/02/26 16:18:35.33
どうもclusterの使い方がいまいちわからなくて...

clusterで別のソースファイルをworkerとして動かすにはどうしたらいいのでしょうか

webworkerでは
new worker("worker.js");
でできたんですけど..

513:デフォルトの名無しさん
12/02/26 22:34:27.70
node.exe 環境での package.json についてだけど
"main" : "C:\hoge\hoge.js" だと動かなくて
"main" : "C:/hoge/hoge.js" だとちゃんと読んでくれるみたい

ちょっとハマった

// node.exe v0.7.5


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch