【node.js】サーバサイドjavascript【Rhino】at TECH
【node.js】サーバサイドjavascript【Rhino】 - 暇つぶし2ch430:デフォルトの名無しさん
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

514:デフォルトの名無しさん
12/02/26 22:39:51.33
知らんけど、"C:\\hoge\\hoge.js" じゃないの?

515:デフォルトの名無しさん
12/02/26 23:11:20.06
cluster.setupMaster()で起動するワーカーのソースに他のファイルを指定できるのはわかったがなぜか一回設定すると変更できない


ひとつのプログラムでcluster化したい場所が二ヶ所以上あるとつかえないのかな?

こうなるとwebworkerが使いたい...

516:デフォルトの名無しさん
12/02/26 23:18:02.41
a = require("cluster");
console.log(a.settings());            --->{ exec: '', args: [], silent: false }
a.setupMaster({exec:"./app.js"});
console.log(a.settings());            --->{ exec: './app.js', args: [], silent: false }
a.setupMaster({exec:"./app2.js"});
console.log(a.settings());            --->{ exec: './app.js', args: [], silent: false }       ←なんでapp2.jsじゃないんだよ( ̄_ ̄#)

b = require("cluster");
console.log(b.settings());            --->{ exec: './app.js', args: [], silent: false }       ←なんでapp.jsが入ってんだよ( ̄_ ̄#)


console.log(require("cluster").settings());            --->{ exec: './app.js', args: [], silent: false }

要するにrequire("cluster")で一回、値を設定すると変更できないみたいだ
webworker使いたい......

517:デフォルトの名無しさん
12/02/27 00:18:30.12
clusterのソース読めば良いよ
あれ結局はforkしてるだけだし


518:513
12/02/27 00:49:09.66
>>514
確認したら大丈夫でした
っていうかそっちのが正当かも

519:デフォルトの名無しさん
12/02/27 02:01:54.48
>>517 すみません
clusterのソースってどこにあるんでしょう...?ポリ…σ(-''-;)

520:デフォルトの名無しさん
12/02/27 02:15:44.39
>>517 じゃないけど,これじゃないですかね
URLリンク(github.com)

ローカルから探すなら
$ find / -name cluster.js

でしょうか

521:デフォルトの名無しさん
12/02/27 07:40:45.36
Webアプリ開発は Linux + Mono + ASP.NET MVC が最強だと悟った
スレリンク(poverty板)

522:デフォルトの名無しさん
12/02/27 14:15:15.92
結局clusterモジュールを>>516で満足のいくように書き換えることにした

ちょっとかかりそうだな

523:デフォルトの名無しさん
12/02/27 15:31:15.90
ちょっとかかりそうだね

524:デフォルトの名無しさん
12/02/27 15:32:16.66
ちょっとかかるかもね

525:デフォルトの名無しさん
12/02/28 00:16:19.71
とりあえずcluster書き換えて使えるようになった
どうもcluster.settingsは二回以上書き換えるといろいろとおかしくなるみたい
んじゃa = require("cluster");    b = require("cluster");みたいなかんじで何回もモジュールをロードしたらいいのではないか
→なんかrequire("cluster")はこれ単体で動いてるみたいやから、aとかbに代入してもコピーされるのではなくaやbがrequire("cluster")のポインタになるだけで意味がなかった
→require("cluster")を作る関数を返すモジュールを作った

//    ./cluster.js
module.exports = function(){
clusterほにゃらら
returen cluster;}

でa = require("./cluster.js")();
これでa,b,c...ってつくってくとclusterの部分がa,b,cにコピーされるから別もんとしてつかえる

あとは別のファイルから動いてるマスターとワーカーをどうやって通信させるか かな

526:デフォルトの名無しさん
12/02/28 01:33:24.79
スレ違いかもしれないけど、Aptanaとかでexpressのコード補完とか出来ないのかな
出来れば凄く便利になるんだけど・・・

527:デフォルトの名無しさん
12/02/28 06:37:58.61
言い出しっぺの>>526がエクステンション作ってくれるらしい
拍手!

528:デフォルトの名無しさん
12/02/28 15:00:48.28
vim + neocmplcacheでいいんじゃね

529:デフォルトの名無しさん
12/02/28 15:11:21.51
>>528
☆-(ノ゜Д゜)八(゜Д゜ )ノイエーイ☆

530:デフォルトの名無しさん
12/02/28 18:52:00.89
>>529
(゜∀゜)人(゜∀゜)ナカーマ

531:デフォルトの名無しさん
12/03/02 09:06:07.13
ServletやStrutsのような使い心地のフレームワーク作成ちう

532:デフォルトの名無しさん
12/03/02 09:14:44.60
それあかんやつや

533:デフォルトの名無しさん
12/03/02 18:11:10.92
>>531
wktk

534:デフォルトの名無しさん
12/03/02 23:27:36.26
やっぱ例外処理がネックだね。
キャッチされない例外処理と、レスポンスを結び付けるのが難しい。

vm.createScript/createContext/runInContextを組み合わせて、
リクエストをそれぞれ別々のコンテキストで実行する方法なら、
何とかならない訳ではないが、メモリとパフォーマンスの問題あり。

因みに、その方法はError.prototypeをコンテキスト単位で拡張しておく。
するとprocessでキャッチされない例外を受け取った時に、
例外オブジェクトが拡張された状態になってる。
そこに事前にレスポンスを結び付けるという方法。

535:デフォルトの名無しさん
12/03/02 23:36:21.26
例外処理は、Greeがnode-greeという独自モジュールで、
非同期処理をtry/catch出来るようにしているらしい。

node-fiberをみると、ネイティブ拡張で、関数の実行を途中で止めて、他の関数に制御を渡すというのをやってる。
原理は同じなんだろうね。

キャッチ漏れ対策はどうしたもんか。。。

536:デフォルトの名無しさん
12/03/03 00:32:26.46
expressってやっぱいいの?

537:デフォルトの名無しさん
12/03/03 07:59:36.91
expressはrubyでいうとRailsにもSinatraにもなれる素敵フレームワークだからな
一部例外除いてnode製のwaf名乗ってる奴、だいたいexpressのDSLだし
zappaとかaceとかtower.jsとかmatadorとか

expressの使い方わかってれば、以上のライブラリ好きに拡張できるよ

538:デフォルトの名無しさん
12/03/03 12:52:44.53
ただ、expressはrailsやsinatraと同じで
今は流行ってるが一時的ですぐ廃れそうなんだよな。

539:デフォルトの名無しさん
12/03/03 18:48:59.77
なにも流行ってるものを使わなきゃいけないわけないだろ

自分が使いたいものを使えばいい


それ言うならnodeじゃなくてもっと流行ってるPHP使えよ

540:デフォルトの名無しさん
12/03/03 18:54:57.54
PHPよりもJavaの方が流行ってる。

541:デフォルトの名無しさん
12/03/03 19:04:42.96
マジレスで、今の流行りはPython

542:デフォルトの名無しさん
12/03/03 19:20:09.81
URLリンク(www.tiobe.com)
Python今はもう明らかに落ち目だぞ

543:デフォルトの名無しさん
12/03/03 19:29:19.30
Javaって流行っているのか?

簡単なものを作るのには、expressは便利だよ

544:デフォルトの名無しさん
12/03/03 19:38:45.63
JSの事をJavaと呼んでるんだろう

545:デフォルトの名無しさん
12/03/03 19:49:01.38
それはお前だけだろw

546:デフォルトの名無しさん
12/03/03 20:42:49.04
なんでわざわざJSと書いてるのに
俺がJavaと呼んでる事になってるの?
頭大丈夫?


547:デフォルトの名無しさん
12/03/03 21:02:25.32
昔そういう勘違いして馬鹿にされて
それが今もトラウマになってるんだろw

548:デフォルトの名無しさん
12/03/03 21:21:34.86
ただ煽りたいだけの頭痛い子か

549:デフォルトの名無しさん
12/03/03 21:23:09.37
最初に煽ってきたのは>>544だけどなw

550:デフォルトの名無しさん
12/03/04 14:33:19.64
接続中のクライアントをサーバ側でランダムにマッチングするようなことはできますか?
Node.jsはシングルスレッドのため、別スレッドで検索しつつ見つかったら~みたいなこと
出来ない気がするので・・・。

わかる方いらっしゃいましたら教えて頂ければと思います。



551:デフォルトの名無しさん
12/03/04 15:05:35.26
なんでnode.jsっていうんですか?正式名称はnodeじゃないんですか?

552:デフォルトの名無しさん
12/03/04 15:12:13.56
>>550
イベントループでもマルチスレッドっぽい事は出来る。


553:デフォルトの名無しさん
12/03/04 16:32:45.86
今のバージョンってCygwinに入らないのか。
./configureでCygwinはサポートしてないぜって怒られる。

単純にfibers使いたいだけなんだけど、
Windowsサポートされてないし、
かと言ってLinux環境作るのが面倒い。


554:デフォルトの名無しさん
12/03/04 16:34:41.52
Windowsサポートしてるだろ

555:デフォルトの名無しさん
12/03/04 17:16:00.80
書いたとおり、fibersというモジュールは、
Windowsに対応していないんだ。
ソースみるとpthreadとか依存しまくりだし、
作者も公式で、対応出来るけどヤラネと言ってる。。。

556:デフォルトの名無しさん
12/03/04 21:30:41.58
cygwinかmingwでモジュールだけコンパイルしたり
URLリンク(sourceware.org) のラッパー書くより、
vmplayerにubuntu serverインストールする方が早い気がするよ。

作業中いつでもネットワーク環境あるならsaasでも
URLリンク(www.goodpic.com)


557:デフォルトの名無しさん
12/03/04 22:03:39.58
ビルドについて、node本体かfibersについてか分からんけど
URLリンク(github.com)
これのことなら、単純にMakefileとplatform.mkに追加すればいんじゃない?

558:デフォルトの名無しさん
12/03/04 22:20:49.96
cygwin上でのビルドで怒られるのは、node.js本体で0.6系。
fibersは試してないけど、cygwinならいけそうな気がする。


559:デフォルトの名無しさん
12/03/04 22:30:25.04
>>550
何をしたいのかがよくわからんけどclusterで行けると思う

おれはclusterでgizmodeのページを監視させて、更新されたらクライアントに通知がいくようなもん作った

560:デフォルトの名無しさん
12/03/05 00:25:13.96
>>552
ありがとうございます。
試してみます。

561:デフォルトの名無しさん
12/03/05 00:32:41.44
>>559
せめてもう少しましなサイトを…

562:デフォルトの名無しさん
12/03/05 18:55:40.43
node.jsとC言語で実行時間比べてみたらほぼ同じ速さだったんだがスクリプト言語でここまで速くなるもんなのか。

空ループと乱数発生させるだけのループしか試してないけど複雑な処理だと差が開くのかな。

563:デフォルトの名無しさん
12/03/05 19:07:00.49
ヒント:JIT

564:デフォルトの名無しさん
12/03/05 19:24:08.05
v8は内部で部分的にコンパイルしてるからスクリプト言語でも速い

565:デフォルトの名無しさん
12/03/05 19:55:51.51
いくらJITコンパイルしてるからってC言語と並ぶとは思わなかった。Cでモジュール書くことも出来るけどほとんど必要なさそうだな。

566:デフォルトの名無しさん
12/03/05 20:03:50.52
どっちかというと、ネイティブじゃなきゃできない事とか、
ネイティブのライブラリを呼び出すとか、
そういう用途がいいんじゃないかな。

あと、大量データを一括で渡して計算結果をもらうとか。
GPGPUなんかは計算だけならCよりも更に速いので、
そういうのを呼び出す用途もいける。

V8の特性はよくわからないけど、
ネイティブ呼び出しのオーバーヘッドって、
それなりに高いと思うんだ。
それを考慮したベンチをとったのかな?

567:デフォルトの名無しさん
12/03/05 20:46:49.07
>>566
なるほど、詳しくありがとう。
JSじゃ出来ないことをするにはモジュール必須だね。

オーバーヘッドについては気になったからMath.floor(Math.random()*10000000);とかのループも試したけどCと同等だった。
一度呼んだ関数はキャッシュされてるのかもしれないが。

568:デフォルトの名無しさん
12/03/05 21:48:40.81
> 空ループと乱数発生させるだけのループしか試してないけど複雑な処理だと差が開くのかな。

それだとコンパイルしたら、コードなくなるんじゃね?


569:デフォルトの名無しさん
12/03/05 22:24:26.28
もうちょっとヘビーな処理の方がいいかも。
ネイティブ呼び出しのオーバーヘッドが、無視できるレベルのヘビーなベンチなら、
恐らくCの方が速いと思われ。

ネイティブコードはコンパイル時の静的な最適化で、
JITは実行時のメトリクスに合わせた動的な最適化だから、
ケース次第ではJITの方が速い場合もあるけど。

570:デフォルトの名無しさん
12/03/05 23:18:10.86
かなり重い処理させるとCのほうが速いね。それでもnode.jsの1.1倍くらいだが。

571:デフォルトの名無しさん
12/03/06 00:21:11.57
node.jsが異常に速いのはここでも実証されてる
URLリンク(www.slideshare.net)

572:デフォルトの名無しさん
12/03/06 00:28:50.91
V8だけ無駄に評価されすぎじゃね?
たまにはSpiderMonkeyも思い出してあげてください・・・

573:デフォルトの名無しさん
12/03/06 05:01:48.98
文字列連結ってブラウザのJSではかなり多い処理なんで、
それに特化したチューニングをしてるとは思われる。

何かのベンチではV8よりも、IonMonkeyだかJaegerMonkeyの方が、
若干速いという記事を見た覚えがある。
AS3/AVM2もケースにおいてはV8よりも速いみたいだし。

処理によって速い遅いというのは、チューニングの特性が大きいのかもしれない。

574:デフォルトの名無しさん
12/03/06 10:21:42.36
JSは文字列を扱う機会が多いわりに遅いってイメージ。
でも、V8とかはそんなに速いのか。node.js使ってみようかな。

575:デフォルトの名無しさん
12/03/06 14:26:00.43
node.jsで子プロセス作ってそこから親プロセスのメモリにアクセスすることって出来ますか?

576:デフォルトの名無しさん
12/03/06 18:33:47.11
親と子のデータのやり取りはできるけどメモリにアクセスできるかはわからない

577:デフォルトの名無しさん
12/03/06 19:44:40.63
共有メモリは無理かな

578:デフォルトの名無しさん
12/03/06 19:59:43.06
なんか行けそうな気がするけど

579:デフォルトの名無しさん
12/03/07 01:19:06.32
みんなnodejsでどんなもん作ってる?

580:デフォルトの名無しさん
12/03/07 07:01:23.74
node.jsで何か作るためのライブラリ。
メタ開発面白いお。

581:デフォルトの名無しさん
12/03/07 10:44:27.44
V8はC++で作られててC++のランタイムをどうのこうのって書いてあった

582:デフォルトの名無しさん
12/03/07 12:46:30.84
node.jsでJavaVM作ってその上でRhino動かそうぜ

583:デフォルトの名無しさん
12/03/07 15:17:15.51
>>582
渋いな


584: 忍法帖【Lv=32,xxxPT】
12/03/07 15:20:10.22
できるもんなのか...?

585:デフォルトの名無しさん
12/03/07 15:38:38.56
mysql使っているところで例外を throw すると、app.get() の中で 拾えない。。これって何故だか分かりますか?(24歳 会社員)
var mysql = require( "mysql" );
var db = mysql.createClient( conf.mysql );
function getAccounts() {
var sql = "SELECT * FROM accounts ";
db.query( sql, [], function( err, results, fields ) {
throw err;
});
}
app.get( "/hoge", function( req, res ) {
console.log( "start" );
try {
getAccounts();
} catch ( e ) {
console.log( "catch error " + e );
}
console.log( "end" );
res.render( "hoge" );
});
-------------------------------------------
start
end
/home/user/work/node.js/app/server.js:296
throw err;
^
null

586:デフォルトの名無しさん
12/03/07 17:10:28.76
それって
process.on('uncaughtException',function (e) {});
とかでもとれないやつ?


587:デフォルトの名無しさん
12/03/07 23:34:26.29
query関数の引数のコールバックは非同期だから、
getAccountをtry catchで括っても無駄。

588:デフォルトの名無しさん
12/03/08 01:28:17.05
PHPとnode.jsのセッション情報共有って出来ますか?


589:デフォルトの名無しさん
12/03/08 02:21:35.70
>>588
どうやって共有するかによる。
PHPは独自のシリアライズ方式で値を保存、復元している。
node.jsには標準がないので、PHPのシリアライズされたデータの、
エンコーダーとデコーダーを作るのが手っ取り早い。

と思ったら、npmにnodePhpSessionsというのがあるわw
見てないけど、多分上記の様なことやってくれそう。
レポよろしく。

590:585
12/03/08 12:19:26.92
やっぱそうなのか、、dbに接続したらダメになってたから、そうかなーって思ってたけど、、
つらい。。
トランザクションを利用したくて、なんかいい方法ありますか??

ひたすらコールバックに渡していく方法だと、コードが入れ子になりすぎて汚くなるから、

function doChain( this_, fn ) {
if ( typeof fn == "function" ) {
this_.data.chain.push( fn );
}
this_.data.chain.shift()( this_ );
}

function func1( this_ ) {
console.log( "func1" );
throw "error";
this_.data.chain.shift()( this_ );
}
function func2( this_ ) {
console.log( "func2" );
this_.data.chain.shift()( this_ );
}

function begin( this_ ) {
console.log( "begin" );
this_.data.chain.shift()( this_ );
}

591:デフォルトの名無しさん
12/03/08 12:19:59.37
function commit( this_ ) {
console.log( "commit" );
}
function rollback( fn ) {
console.log( "rollback" );
fn();
}

app.get( "/hoge", function( req, res ) {
try {
this.data = [];
this.data.chain = [ func1, func2 ];
console.log( "start" );
dodata.chain( this, function() {
console.log( "end" );
});
} catch ( e ) {
console.log( "catch error" );
rollback(function(){
console.log( "rollback 2" );
});
}
});
こういう風にしてるけど、何か try-catch + コードが汚くならない方法ありますか、、

592:デフォルトの名無しさん
12/03/08 12:38:59.71
uncaughtException で取れたので

// 追加
process.on( "uncaughtException", function( err ){
console.log( "uncaughtException => " + err );
});
// 追加
function TransactionFaild( app ) {
console.log( "transaction faild" );
rollback(function() {
app.data.res.render( "error/transaction_faild" );
});
}

function func1( this_ ) {
console.log( "func1" );
throw new TransactionFaild( this_ ); // 修正
this_.data.chain.shift()( this_ );
}

app.get( "/hoge", function( req, res ) {
try {
this.data = [];
this.data.req = req; // 追加
this.data.res = res; // 追加
this.data.chain = [ func1, func2 ];
... (省略)
});

としたのですが、err/transaction?_faild のテンプレートが表示されません。
使っているのは express と ejs なのですが、何ででしょうか。。
※ 書いていて思ったのですが this_ より app の方がいいですね。

593:デフォルトの名無しさん
12/03/08 22:35:20.71
redtamarinにnode.jsくらいの基本ライブラリがあって、
ネイティブ拡張がやり易いなら、結構普及するんだろうな。



594:デフォルトの名無しさん
12/03/08 23:11:59.60
>>589
ありがとう!
試したらレポしますね!

595:デフォルトの名無しさん
12/03/09 23:27:21.42
>>594
スキル不足でSoket.IOと紐付け出来ませんでした\(^o^)/


596:デフォルトの名無しさん
12/03/11 16:09:44.25
URLリンク(d.hatena.ne.jp)
このサイトを参考にCookie受信を試しているのですが、
IE8では上手くCookie受信出来るのですが、
Firefox10.0.2では上手くいきません

Firefoxでは何か制限があるのでしょうか?


597:デフォルトの名無しさん
12/03/12 00:38:09.60
Tower.js使ってみた人いる?

598:デフォルトの名無しさん
12/03/12 14:05:25.86
とりあえずscaffold使ってみたりした
基本的には mongoose, express, coffeekup でラッパ作ってMVCならこうなりますって感じ
Railsに準じた構成でコードが吐かれる。俺はRailsわからんので此処から先はRails詳しい人お願い

599:デフォルトの名無しさん
12/03/13 21:00:37.34
node.jsってJavascript知らないと使えないの?

600:デフォルトの名無しさん
12/03/13 21:52:57.47
そりゃまあ

601:デフォルトの名無しさん
12/03/13 23:02:20.42
あんまりガチガチじゃないMVCフレームワーク作ってる。

・正規表現で、動的にコントローラを結び付けられる
・ソースやリソースなどは、更新されると自動読み直し
・決めたwebappディレクトリをルートとしたリソース管理
・正規表現で定義でき、複数のフィルタを連続して実行できるリクエストフィルタ
・静的コンテンツのサポート、エラーページのサポート
・リダイレクト、ディスパッチのサポート
・複数のテンプレートエンジンの使い分け

基本的には極力余計なことはしないので、POSTパラメータの処理などは標準ではサポートしない。
でもそれだと不便なので、POSTパラメータやアップロードされたファイルを、
フィルタでリクエストオブジェクトに設定できるようにしている。

ファイルアップロードとかPOSTパラメータ、クッキーなどの処理は、
基本的には実績のあるサードパティのモジュールを使う感じ。
フレームワークに適用できるようにするための、アダプタだけ用意する感じかな。

module.exports = function(context){
  var model = context.require("models/foo");
  model.doLogic(xxx, xxx, function(err, result){
    if(err){
      context.error(err);
    }else{
      context.render("ejs:foo/bar", result);
    }
  });
};

という感じでコントローラが書ける。ExpressとかTowerとかの今風のMVCではなく、
どっちかというと、ZendとかStrutsな感じのMVCだけど、こういうのってニーズあるのかな?


602:デフォルトの名無しさん
12/03/13 23:21:22.47
・決めたwebappディレクトリをルートとしたリソース管理

ってなんぞ?

603:デフォルトの名無しさん
12/03/13 23:34:58.06
サーブレットでいう、WEB-INFディレクトリのようなもの。

特定のディレクトリ以下をWEBアプリのディレクトリとして、
そのディレクトリ以下のリソースを自動的に読みなおしたりキャッシュしたり、
パスの解決もそのディレクトリからの相対パスとなる感じ。

node-devだと監視対象になるし、アプリ全体が再起動しちゃうんだけど、
どっちかというと、本番稼動時にコントローラをホットスワップするためのもの。
サブディレクトリ足して、コントローラ置いて、アプリの設定にするというのもOK。

、、、という感じです。

ディレクトリを固定するのは、アプリ内でのパスの単純化と、
監視コストの削減ってところですかね。


604:デフォルトの名無しさん
12/03/14 08:03:00.75
>>601
凄いなw
blog晒してw

605:デフォルトの名無しさん
12/03/14 08:52:45.35
>>604
ないから作るかなw

ソースもDropbox上のSVNリポジトリに置いてるだけだし、
alpha版出来たらGithubとnpmにあげるかな。。

606:デフォルトの名無しさん
12/03/14 13:24:56.34
最初からgithubで開発すりゃいいのに

607:デフォルトの名無しさん
12/03/14 13:44:21.90
>>605
むしろgithubをNodeで作ってくれw

608:デフォルトの名無しさん
12/03/14 17:19:57.76
恥ずかしいソースを晒したくない

609:デフォルトの名無しさん
12/03/14 17:21:02.45
オープンソースは自分のケツ穴を衆目に晒すようなもんだ。
よっぽど美しいケツ穴かナルシストでなければ自信なんて持てるはずがない。

610:デフォルトの名無しさん
12/03/14 17:44:13.88
       ∧∧
       (д`* )
       (⊃⌒*⌒⊂)
        /__ノωヽ__)

611:デフォルトの名無しさん
12/03/14 21:54:51.50
>>596
Socket.IOのバージョンを 0.9.1-1 にアップデートしたらFirefoxでも動作しました。
お騒がせしました。

612:デフォルトの名無しさん
12/03/14 22:49:05.29
Node.jsやるんだったらGithubは必須というのは重々に承知してる。
でもSVNになれると、なかなか馴染めないんだよね。

前はGoogleCodeでソース管理してたんだけど、
リポジトリの同期が遅いし公開が目的ではないので、
DropboxとSVNの方が速いし気軽だね。

でも完全にGithubに移行しようかな。

613:デフォルトの名無しさん
12/03/15 10:26:37.52
>>609
それは違うと思うな
ブサイクなアイドルなりたてが美人なアイドルになる過程の方が似てる

色な人に見られる事を意識し使われればより良いコードになっていく
それがまた自分の糧にもなる


614:デフォルトの名無しさん
12/03/15 10:33:03.92
で、美人アイドルのケツ穴はどこですか?

615:デフォルトの名無しさん
12/03/15 23:27:30.67
ソースコードはドキュメントでもあると意識すれば、
必然的にキレイで恥ずかしくないコードになるよ。

616:デフォルトの名無しさん
12/03/16 22:17:36.54
ブラウザ多重起動で多重の接続になるのを制限するにはどうすればいいのかな
ログイン機能とかは作ってあるから、接続したログインIDすべてを配列とかで保持しておいて比較でいいのかな
もっと頭のいい方法あれば知恵が欲しいです

617:デフォルトの名無しさん
12/03/17 23:31:28.34
doccoとかdoxとか試してみたけど、結局jsdoc-toolkitがいいね。
node.jsならnode-jsdoc-toolkitがあるけど、
正しい使い方がいまいち分からんかったので、適当にいじりながら試してみた。

npm install node-jsdoc-toolkit
で、インストールしておいて、template/jsdocというディレクトリを抜き出しておく。
自分はビルド用のディレクトリを用意しているので、以下の内容のjsファイルとtemplate/jsdocをそこにコピー。

global.internal_args = [ "../lib/", "-d=../doc" , "-r=5", "-t=./jsdoc"];
require("jsdoc-toolkit");

これで、プロジェクトのlib以下のJSファイルのドキュメントが、
プロジェクトのdoc以下に作られる。

windowsでもlinuxでも試してるけど、どっちもOKだったよ。

618:デフォルトの名無しさん
12/03/17 23:36:52.72
JsDocの不満としては、

・コールバック関数の引数の仕様が定義できない
・__defineGetter__/__defineSetter__をサポートしてない
・コメントの1行目がサマリーに、2行目以降の文章が詳細にということができない

ってところ。IssueTrackerには上がってるようなので、今のところ我慢。

619:デフォルトの名無しさん
12/03/18 02:33:43.68
理解していない人がドヤ顔でdisってるw
URLリンク(www.anlyznews.com)


620:デフォルトの名無しさん
12/03/18 12:45:27.52
node.dartとか試した人居る?

621:デフォルトの名無しさん
12/03/18 15:01:32.88
>>619
これは痛いなww
>JavaScriptのプログラミング言語としての限界が影響する。つまり、オブジェクト指向が不完全であること

そもそもオブジェクト指向が最強だと言う前提になってるし
突っ込みどころが多過ぎでヤバイw

622:デフォルトの名無しさん
12/03/18 15:44:13.12
1年前の記事をそう何度も蒸し返してやるなよww
かわいそうだろwww

623:デフォルトの名無しさん
12/03/18 15:55:16.51
そのブログへの反論ならたしか見たことあった……と思って探してきた
URLリンク(d.hatena.ne.jp)

624:デフォルトの名無しさん
12/03/18 15:55:35.76
node.jsでググると、今でも上位にくるんだぜwww

625:デフォルトの名無しさん
12/03/18 15:59:05.66
オブジェクト指向が完全じゃない、ってのは前スレにあったスコープの話なのかね
……そういうわけじゃないだろうなあ
たぶん、クラス指向じゃなきゃ完全なオブジェクト指向じゃない、とか思ってたんだろうな

626:デフォルトの名無しさん
12/03/18 16:33:18.42
>>623
探すまでもリンクされてるだろアホか

627:デフォルトの名無しさん
12/03/18 17:00:58.75
Nihongo de ok

628:デフォルトの名無しさん
12/03/18 17:04:10.23
Roumaji de NG

629:デフォルトの名無しさん
12/03/19 08:02:51.09
>>625
未だにJavaScriptはオブジェクト指向プログラミングができないって思ってる人は多いと聞く
まぁ、徐々に広まるんじゃないかな

630:デフォルトの名無しさん
12/03/19 08:34:51.74
JavaScriptは本当のオブジェクト志向じゃないとか言ってる人って、
大抵JavaとかC++と比べてるけどさぁ、批判するならホンモノのSmalltalkと比べろよと思う。
まぁ、浅知恵で批判する人って、その辺よく知らないと思うけど。

631: 忍法帖【Lv=4,xxxP】
12/03/19 14:14:01.19
nodeでjQuery使いたくてjsdomを入れようとしているんだけど、ドキュメントの通りに
var jsdom = require("jsdom");
var win = jsdom.jsdom().createWindow();
とすると

TypeError: needs a 'context' argument.
at Object.getGlobal (/Users/aaa/Sites/node/node_modules/jsdom/lib/jsdom/browser/index.js:26:21)
at Object.createWindow (/Users/aaa/Sites/node/node_modules/jsdom/lib/jsdom/browser/index.js:308:23)



みたいな感じのエラーが出るんだけど原因わかりますか?
環境はmac 10.7.3+node0.7.5+jsdom最新版です

632:デフォルトの名無しさん
12/03/19 15:16:31.46
context引数が必要

633: 忍法帖【Lv=4,xxxP】
12/03/19 15:28:51.38
どこに引数が必要かがわかりません
ドキュメントでは特にこの部分では引数は必要ないみたいですし、引数を入れて
var jsdom = require('jsdom'),
doc = jsdom.jsdom('<html><body></body></html>', jsdom.level(1, 'core'));
var win = doc.createWindow();
とやっても同じエラーが出てきます・・・・

634:デフォルトの名無しさん
12/03/19 18:16:59.15
jsdom/browser/index.jsの該当する行を見たら?

635:デフォルトの名無しさん
12/03/19 21:33:23.12
やっぱりソースを調べていかなきゃいけないかな?(^_^;)
他人のコードの解読って疲れるけどな

他に僕と同じようなエラーが出た人はいませんか?
ググってもあんまり出てこないし…

636:デフォルトの名無しさん
12/03/19 22:37:15.35
var jsdom = require('jsdom');
var document = jsdom.jsdom('<html><body></body></html>');
var window = document.createWindow();
var jquery = 'URLリンク(ajax.googleapis.com)';
jsdom.jQueryify(window, jquery, function(window, $) {
  $('body').append('<div>Hello Jsdom!</div>');
  console.log($('div').html());
});

$ node hellojsdom.js
Hello Jsdom!

普通にできた

637:デフォルトの名無しさん
12/03/19 22:51:23.20
emitで呼び出す関数の引数が多くなるときってどうすれば綺麗になる?
多言語みたいに構造体で渡したりは出来ない・・・のかな?


638:デフォルトの名無しさん
12/03/19 22:53:38.74
>>636
使っているversionを教えてください

639:デフォルトの名無しさん
12/03/19 23:07:47.36
>>638
node v0.6.12
jsdom 1.1.4
ubuntu-ja-10.10-desktop-i386


640:デフォルトの名無しさん
12/03/19 23:15:17.49
んん~~
とりあえずnodeのバージョン下げてみるか
それでできないならmacの問題か・・・?

641:デフォルトの名無しさん
12/03/20 00:40:31.86
まだAPIも安定してないし、プラットフォームでの相違も大きいよ。
なので、コードを解析してバグを回避する、
というような書き方が出来ないと、
正直使いこなすのは難しいかもしれない。
まだ枯れてないから仕方が無いよね。


642:デフォルトの名無しさん
12/03/20 00:53:08.74
普通に安定版を使えってだけの話だと思うが

643:デフォルトの名無しさん
12/03/20 00:57:39.02
安定版が安定してたらいいんだけど。
0.8になるとまたAPI変わるし、ちょっと設計が雑だと思う。

644:デフォルトの名無しさん
12/03/20 02:00:25.34
jsdomはバグ多いんだよなぁ・・・


645:デフォルトの名無しさん
12/03/20 09:35:33.85
【nude.js】に見えた

646:デフォルトの名無しさん
12/03/20 10:04:55.70
>>637
オブジェクトで渡すとか。

647:デフォルトの名無しさん
12/03/20 17:13:59.08
macでもjsdomで>>636動いたよ。
nodeは0.6.13と0.7.6
jsdom 0.2.13
OS X 10.7.3

648:601
12/03/20 18:38:08.82
コア機能だけは出来たけど、テストとかドキュメントとか面倒いww
JSDocでAPIドキュメントを書いてるんだけど、
一部JSDocの都合に合わせた書き方にコードを直すのがツライところです。
来月の中旬にはGitHubでβ版公開出来るかも。

649:585
12/03/22 18:25:48.72
apache 上で動く cakephp と、node.js 上で動く sokcet.io でそれぞれセッションの共有化ってできますか?

apache 上の PHPで websocket を動かすとかではなく、チャットなのでnode.jsでできればと思っています。

650:デフォルトの名無しさん
12/03/22 23:05:54.66
>>646
出来ました。
ありがとうございます。

651:デフォルトの名無しさん
12/03/23 19:26:14.00
node.jsって結局何なのってずっと思ってたんだけど、上の方のやり取り見てやっと腑に落ちた。
Webサーバだとばっかり思ってたから違和感すごかったんだ
勉強になるやり取りだった。ありがとー

652:デフォルトの名無しさん
12/03/24 08:56:35.73
node.jsってPATHやHOMEとか環境変数はどうやって取得すればいいの?

653:デフォルトの名無しさん
12/03/24 11:19:29.56
>>652
process.env

654:デフォルトの名無しさん
12/03/24 20:08:24.31

ejs で、

app.get("/p/:id", function(req, res){
var id = req.params.id;
var hoge = "fuga";

res.render(id, {
locals: {

hoge:"test"

}
});
});


上記のようにしてレンダリングした際に、
<%- fuga %> が test に置換されるように、
localsのhogeを変数として指定することは出来ますか?

パワープレイで解決することは出来るのですが…。

655:デフォルトの名無しさん
12/03/24 22:37:05.35
素直に
locals: {
 fuga: 'test'
}
じゃ駄目なの?

656:デフォルトの名無しさん
12/03/24 23:52:51.19
無理やと思うけどな

何がしたいかわからんけどこれじゃダメ?

var hoge = "fuga";

res.render(id, {
locals: {

a[hoge]:"test"

}
});
});

a["fuga"] ==> "test"




657:デフォルトの名無しさん
12/03/25 00:45:45.65
var fs = require('fs');
fs.__proto__ = require('path');
とやっておくと、色々と捗る。

fs.existsとかが0.7でも0.6でもいける。

658:デフォルトの名無しさん
12/03/25 05:26:42.18
fs.watchってディレクトリをロックするのかよ。
使いにく過ぎる。。。


659:デフォルトの名無しさん
12/03/25 14:23:24.05
現在のOSの言語設定を取得する仕組みないですか?

660:デフォルトの名無しさん
12/03/25 14:26:38.10
locale

661:デフォルトの名無しさん
12/03/25 17:31:32.98
ありがとうございました。
ちゃんと、C言語って返ってきました。
LinxuってC言語で作られてるんですね。

662:デフォルトの名無しさん
12/03/25 20:12:04.47
propertiesファイルのパーサ作ったんだが、
require.extensionsに登録しておくと、
requireだけでpropertiesファイルの読み込みが出来て、
捗り過ぎwwwワロタwww


663:デフォルトの名無しさん
12/03/25 21:51:09.61
node.jsの勉強がてら掲示板を作ってるんだけど、
こんな機能があったらいいな
と思う機能ってなにかありますか?


664:デフォルトの名無しさん
12/03/25 22:04:59.62
未来の輝いてる俺の記録が既に書かれている

665:デフォルトの名無しさん
12/03/25 22:10:34.76
>>664
ハゲ・ズラ板へどうぞ

666:デフォルトの名無しさん
12/03/25 22:53:12.15
>>663
新着RSS

667:デフォルトの名無しさん
12/03/25 22:54:50.96
npmでインストールできる掲示板とか。

668:デフォルトの名無しさん
12/03/25 22:59:30.63
みんなサニタイズはどうやってる?
自前で実装してる?

669:デフォルトの名無しさん
12/03/25 23:52:21.35
静的ファイルを返す簡易httpを実装した時は、
ディレクトリトラバーサルをチェックして、
リクエストパスを書き換えたりした。

670:デフォルトの名無しさん
12/03/26 00:17:31.15
>>668
サニタイズ言うな。
エスケープだろ。

正しくエスケープすれば
すべての文字は扱える。

671:デフォルトの名無しさん
12/03/26 00:22:25.54
>>670
高木先生乙

672:デフォルトの名無しさん
12/03/26 00:24:48.30
>>663
とりあえず2ch風のでも作って見て それから考えたら?



673:デフォルトの名無しさん
12/03/26 00:25:09.83
そんなことはない

674:デフォルトの名無しさん
12/03/26 01:18:44.90
>>666>>667>>672
参考になる意見をありがとうございます。
672の言う通り、まずは2ch風のでも作ってみようと思います。
1週間ほどでできると思いますので、
そのときにはまたご意見のほど、よろしくお願いします。

675:デフォルトの名無しさん
12/03/26 01:33:30.37
高坂王子は無視かよっ

676:デフォルトの名無しさん
12/03/26 04:17:44.31
ペニサイズなら使ってもいいッ!

677:デフォルトの名無しさん
12/03/28 15:40:58.15
名前を予約しておきたかったので、
hello world的なやつをnpmに登録した。
今では反省している。。。

678:営利利用に関するLR審議中@詳細は自治スレへ
12/03/30 12:25:00.33
こうしてまたゴミファイルがnpmに登録されるのであった

679:営利利用に関するLR審議中@詳細は自治スレへ
12/04/01 02:29:00.89
Cometにnode.jsって相性がいいってよく聞くけど、実装しているのを見たことがない

680:営利利用に関するLR審議中@詳細は自治スレへ
12/04/01 11:00:37.33
フィボナッチが遅いから仕方が無いんじゃねw


681:営利利用に関するLR審議中@詳細は自治スレへ
12/04/01 11:13:32.08
>>679
socket.ioにcomet実装されてる

682:営利利用に関するLR審議中@詳細は自治スレへ
12/04/01 13:52:38.64
jsでのフィボナッチは実装の仕方によっては爆速だったはずだが

683:営利利用に関するLR審議中@詳細は自治スレへ
12/04/01 15:52:40.02
リクエストがスレッドやプロセスにバインドされるモデルには、Cometは向かないだろうね。
レスポンスを保留するのにどれ位のサーバ資源を消費したままになるか。これが向き不向き違いだろうね。

最近のサーブレット触ってないけど、APIレベルで非同期処理に対応したよね。速いのだろうか。

684:営利利用に関するLR審議中@詳細は自治スレへ
12/04/01 16:09:11.45
うーん、、、githubとかmarkdownとかnpmとかmakefileとか難しい。


685:営利利用に関するLR審議中@詳細は自治スレへ
12/04/01 21:26:29.49
>>681
使ってるサービスある?WebSocketは見るけど…

686:営利利用に関するLR審議中@詳細は自治スレへ
12/04/01 21:31:53.45
Sessionの実装難しいなぁ。

687:営利利用に関するLR審議中@詳細は自治スレへ
12/04/01 21:58:07.49
>>685
WebSocketの動かないIEなんかでもsocket.ioが動くから
その中で使ってるんじゃないの?

688:営利利用に関するLR審議中@詳細は自治スレへ
12/04/01 22:36:00.97
socket.ioってWebSocketだけじゃなく、
かなり泥臭いところまでフォールバックするみたいだね。
iframeを使った通信までやってくれるらしい。

689:営利利用に関するLR審議中@詳細は自治スレへ
12/04/02 10:32:30.33
cometってコネクション張りっぱなしというのにすごい抵抗があるんだけど考え方古い?

690:営利利用に関するLR審議中@詳細は自治スレへ
12/04/02 11:22:36.24
cometはブラウザによってはアイコンが回ったままになるのが好かない

691:営利利用に関するLR審議中@詳細は自治スレへ
12/04/04 08:16:40.36
mojitoってのがYahooから出たね。
Tower.jsのライバルっぽい感じかな。
後でソース見てみる。誰か試した?

692:営利利用に関するLR審議中@詳細は自治スレへ
12/04/04 08:28:23.47
mojotoってExpressとConnect使ってるのか。
クライアントと同一コードが動くといっても、
Yahooのライブラリだしねえって感じ。jQuery使いたいだろjk。

クライアントとサーバで同じコードを動かすメリットがイマイチわからない。
経験上、ドメインの違いを無理矢理埋めると、
大抵どっちも微妙な感じになる気がする。


693:デフォルトの名無しさん
12/04/14 20:23:50.40
下のコードでparse()に渡しているiの値がendの値になります。
parse()に連番を渡したいのですがどうすれば良いですか?

var i,html,$;
$ = require('jquery');
http = require('http');
for (i = start; start <= end ? i <= end : i >= end; start <= end ? i++ : i--) {
options = {
host: 'hoge.jp',
port: 80,
path: '/' + i
};
http.get(options, function(res) {
res.on('data', function(data) {
html += data;
}).on('end', function() {
var $html;
$html = $(html);
parse($html ,i);
});
});
}

694:デフォルトの名無しさん
12/04/15 09:13:12.07
>>693
クロージャ

695:デフォルトの名無しさん
12/04/16 06:54:27.93
ナターシャ

696:デフォルトの名無しさん
12/04/17 15:02:34.02
>>694
ガッチャ

697:デフォルトの名無しさん
12/04/17 15:41:22.06
スジャータ

698:デフォルトの名無しさん
12/04/23 00:17:52.41
だいぶ前にnaveで0.6.9とnode-inspectorとnode-devいれてチュートリアルやってたんだけど。
0.7.8でおなじよーにステップ実行しようと思たら、node-inspectorのchromeのアクセス自体でエラー落ちしてるぽいんですが、
0.7.7でもだめみたいです。
なにか詳細知ってるかたおられませんか?

【^q^】.nave/installed/0.7.8/lib/node_modules/node-inspector/node_modules/socket.io/lib/manager.js:900
if (req.url.substr(0, resource.length) == resource) {
^
RangeError: Maximum call stack size exceeded

699:698
12/04/23 00:53:17.10
近況:0.7.4は動いた、バージョンに対応してないとか、そういう問題?

700:698
12/04/23 01:09:28.75
近況:やっぱり動いてなかった

701:698
12/04/23 01:48:43.32
ざっとためしてみた。やっぱり対応具合によるものか?
0.7.8 ×
0.7.7 ×
0.7.6 ○
0.7.5 ○
0.7.4 ×
0.7.3 ○

ほかの方で0.7.8で動いてる方とかおられますか?

702:デフォルトの名無しさん
12/04/25 22:57:54.10
node.jsって次世代技術として追う価値ある?

703:デフォルトの名無しさん
12/04/26 09:33:47.33
nodeよりjsをだな


704:デフォルトの名無しさん
12/04/27 15:57:56.76
技術的にはぜんぜん次世代じゃないよね。安いJSプログラマを使えるというのが魅力なだけで。

705:デフォルトの名無しさん
12/04/27 16:30:37.64
安いJSプログラマはJSプログラマじゃなくてjQueryプログラマだろ

706:デフォルトの名無しさん
12/04/27 20:22:44.02
もしくはなんちゃってjsプログラマ


707:デフォルトの名無しさん
12/04/27 21:54:12.39
なんちゃってとそうでないjsブログラマの違いをおせーて

708:デフォルトの名無しさん
12/04/27 22:00:24.89
JS理解してます^^
って人の7割ぐらいは理解してないんだよなぁ

先に上がってるjQueryの件もそうだし
グローバル汚染しまくる奴もどうかと思うし


709:デフォルトの名無しさん
12/04/28 02:04:33.83
しょせんはプレゼンテーション層の効率が良くなるとかそういう次元の言語技術だからな
本質的に何か生み出してる訳じゃない

710:デフォルトの名無しさん
12/04/28 09:30:49.80
V8のスレじゃないんだからせめてイベント駆動IOの文脈で語ってやれよw
イベント駆動IOも次世代ではないけどさ

711:デフォルトの名無しさん
12/04/29 00:50:39.99
あん

712:デフォルトの名無しさん
12/04/29 00:55:58.21
ぱん

713:デフォルトの名無しさん
12/04/29 09:52:33.72
nodeよりnude.jsのが衝撃を受けた

714:デフォルトの名無しさん
12/04/30 12:07:08.87
node.exe 0.6.16 (x64) + express + socket.io で,
URLリンク(socket.io) のサンプルを動かしてみたんだけど
Firefox だと WebSocket でちゃんと動くんだけど
IE9 だと Ajax になってしまって,しかも timeout になっちゃうんだよね

IE9 って WebSocket 対応してなかったっけ?

715:デフォルトの名無しさん
12/04/30 13:06:27.96
絶対、人に聞くよりググッたほうが早いと思うんだけど
URLリンク(caniuse.com)

716:714
12/04/30 18:38:24.07
つい軽く訊いてしまったw
これ解りやすいサイトですね ㌧㌧

node.exe 0.7.5 (x64) + socket.io のときは普通に通信できたんだけどなぁ
なんで繋がらないんだろ

717:デフォルトの名無しさん
12/05/02 10:55:59.02
5年ほど前は、シュワルツ変換しろよ(ぷ
とか言ってた時代なのに、今ではjavascriptがスクリプト界のラクダ的な立ち位置

718:デフォルトの名無しさん
12/05/08 00:38:11.22
socket.ioはスタンドアローンで鯖立てられるようになったけど
expressを同居させるメリットってなんだ?
おしえてくらはい

719:デフォルトの名無しさん
12/05/08 01:53:06.29
meteor.jsなんだこれ。
MVCとかRESTとかajaxとかsocket.ioとか、何すかそれ?って感じ。
サーバとクライアントのデータのやり取りが簡単すぎる。
めちゃめちゃ面白い。

720:デフォルトの名無しさん
12/05/08 23:13:53.37
>>702
ない

721:デフォルトの名無しさん
12/05/10 00:07:47.97
俺、週末になったらmeteor.jsで遊ぶんだ
win版もあれば会社でも遊べるのに……

722:デフォルトの名無しさん
12/05/10 08:45:58.56
>>721
いや、サーバに置けばwin機からでも

723:デフォルトの名無しさん
12/05/10 23:29:30.71
サーバ持ってないし
準備する時間もない

724:デフォルトの名無しさん
12/05/11 08:48:14.35
>>723
お前には一生無理だから諦めた方がいいよ

725:デフォルトの名無しさん
12/05/11 10:22:20.96
謎の煽り

726:デフォルトの名無しさん
12/05/11 19:19:35.93
>>719
あれメンテしきれるのかねぇ。どっかのVCからお金引っ張れたらいいんだけど。

ってもうVC使うような風潮でもないのかな

727:デフォルトの名無しさん
12/05/18 15:29:36.44
node.jsって最近囃し立てられなくなったけどステマする必要がないくらいに浸透したから?
node.jsが使われているメジャーなウェブサービスを教えてくださいたくさん

728:デフォルトの名無しさん
12/05/18 17:34:43.08
CoffeeScriptを使ってみたくてさっき入れたけど、
Chromeのuser.js作成には使いにくいのではないかと今気づいた
さてどうしよう

729:デフォルトの名無しさん
12/05/18 17:42:42.54
>>727
一番大規模なのはやっぱピグライフじゃないんかなー


730:デフォルトの名無しさん
12/05/18 19:21:25.94
BrowserQuestは結構規模大きいんじゃないかな?

731:デフォルトの名無しさん
12/05/18 19:23:06.35
>ピグライフ
ありがとう
時間とともに状態が変化していくから向いている
とかですか?とくにそういうことは関係なく?

732:デフォルトの名無しさん
12/05/18 20:28:18.54
>>731
これ見りゃいい
URLリンク(www.nicovideo.jp)

733:デフォルトの名無しさん
12/05/19 03:53:57.13
URLリンク(www.infoq.com)
URLリンク(github.com)
URLリンク(ja.reddit.com)
URLリンク(vertxproject.wordpress.com)

coffeescript 上で JVM 作ってみたり
逆に java で node.js みたいの作ってみたり

734:デフォルトの名無しさん
12/05/23 15:12:32.56
asyncがインストールできなくて困ってます。
ご教示願います。
package.json
{
"author": "hoge",
"name": "webdbsample",
"description": "sample program for testing node",
"version": "0.0.1",
"dependencies": {
"request":"*",
"express":"*",
"async":"*"
},
"devDependencies": {
"request":"*",
"express":"*",
},
"optionalDependencies": {},
"engines": {
"node": "*"
}
}

735:734
12/05/23 15:13:26.43
npm-debug.logです。
info it worked if it ends with ok
verbose cli [ 'node', '/usr/local/bin/npm', 'install' ]
info using npm@1.1.18
info using node@v0.7.8
verbose config file /Users/bbqtaro/.npmrc
verbose config file /usr/local/etc/npmrc
verbose config file /usr/local/lib/node_modules/npm/npmrc
ERR! Couldn't read dependencies.
ERR! Error: ENOENT, open '/Users/bbqtaro/Node/package.json'
ERR! You may report this log at:
ERR! <URLリンク(github.com)
ERR! or email it to:
ERR! <npm-@googlegroups.com>
ERR!
ERR! System Darwin 11.4.0
ERR! command "node" "/usr/local/bin/npm" "install"
ERR! cwd /Users/bbqtaro/Node
ERR! node -v v0.7.8
ERR! npm -v 1.1.18
ERR! path /Users/bbqtaro/Node/package.json
ERR! code ENOENT
ERR! message ENOENT, open '/Users/bbqtaro/Node/package.json'
ERR! errno {}
verbose exit [ 1, true ]


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