【node.js】サーバサイドjavascript【Rhino】
2 :
デフォルトの名無しさん :2011/07/08(金) 11:40:14.07
このスレッドは天才チンパンジー「アイちゃん」が 言語訓練のために立てたものです。 アイと研究員とのやり取りに利用するスレッドなので、 関係者以外は書きこまないで下さい。 京都大学霊長類研究所
Node.js の記事を書く人は、シングルスレッドのイベントループが 昨今の CPU 設計のトレンド(クロック上昇を抑えたマルチコアの プロセッサ)と相性が必ずしも良くない事にきちんと触れた方が いいと思うわ。 その上で、それを克服する方法としてロードバランサー等の技術を きちんと紹介すべきだと思う。
4 :
デフォルトの名無しさん :2011/07/10(日) 03:59:14.04
5 :
デフォルトの名無しさん :2011/07/10(日) 09:08:11.97
このスレッドは天才チンパンジー「アイちゃん」が 言語訓練のために立てたものです。 アイと研究員とのやり取りに利用するスレッドなので、 関係者以外は書きこまないで下さい。 京都大学霊長類研究所
8 :
1 :2011/07/17(日) 11:59:17.58
9 :
デフォルトの名無しさん :2011/07/18(月) 01:56:22.81
12 :
デフォルトの名無しさん :2011/07/28(木) 13:29:20.90
shの仕様的にstdinはcurlのstdoutだろ。 最後にpipeの処理するから。 一旦ダウンロードしてから、 echo yes | sh install.sh すれば?
>>13 > echo yes | sh install.sh
早速やってみますた
だけども…やっぱり入力を求められまする
うーん
/bin/sh scripts/clean-old.sh < /dev/ttyしてるみたいだな。 スクリプトいじるか、諦めるか、expectスクリプト書け。 サーバサイドの人の作るインストーラはCUI的な検討が甘いなw
>>15 うぐぅ
あっしには無理なのでここで諦めまする
自動化したかったのに、まじでこんちくしょーでありんした(´・ω・`)
>>11 Makefileに
LIBICONV += /usr/local/lib/libnode.dll.a
を足したら、makeまではとりあえず通った。
>>17 それやって
makeでけた
make installもでけた
でも動かない(´・ω・`)
20 :
akiyan :2011/08/03(水) 12:15:40.81
できません はい、次
>>20 じゃあなんでTameJSではできてるの?
お前の質問答えてるほど暇じゃありません。
>>19 それはライブラリというよりトランスレータだね
TameJS 用の記法で書いたコードを JavaScript に変換するマクロみたいな物
>>23 なるほど!そういうことでしたか。ありがとうございました。
関数型Javascriptが出る悪寒
JavaScript が上級者にも好まれているのは、関数型言語の特徴を既に備えているからだぜ ある程度 JavaScript の経験があれば、関数を返す関数とか、関数を引数にとる関数を 自然に書いている筈
>関数を返す関数とか、関数を引数にとる関数を それが関数型言語?w
煽る前に自分で調べろよ
akiyanPKしたい
30 :
デフォルトの名無しさん :2011/09/05(月) 19:36:12.23
node.jsサイコー
現在socket.ioつかって大規模chatつくってる
>>3 webworkerで解決
サーバサイドjavascriptの狙いって ajax(xml)使わないでソケット通信するところかな
>>31 サーバーサイドとクライアントサイドの言語の統一により、プログラマーの負担減らす
言語同じだからクライアントで作ったソースをサーバーに流用できる
socket.io webworker等の最新技術を扱える
などの利点がある
まあPHPあんまり好きじゃない俺にとってはものすごくありがたいが
とりあえず言語が同じだからどっちも同じコードでサニタイズできるのは便利だ
>>32 えー
それだったらjavaとかc#がjavascriptの代わりに
ブラウザで動くようにブラウザ側が対応してほしいや
まあしばらく様子だな
Google ChromeのNative Clientってのがそれっすかね Google Chrome限定だけど
>>33 もともとJSはブラウザ用に作られたものだからブラウザ上ではJSには勝てんと思う
サーバーサイドも例えばnode.jsは速度が必要な処理はCとかで書けるから使いようによっては便利だと思われ
そもそもプラットフォーム非依存で スクリプトてのが利点なのに javaはまだしもMS縛りのC#は論外だけどな そのうちネイティブコードはllvmがなんとかしてくれると信じときな
クライアントサイドとサーバーサイドの開発で、 開発者にとって言語の切り替えが不要なとこに意味あるんじゃねーの?
必要な場面がブラウザゲーぐらいしか思い浮かばない 企業広告レベルだとcanvasに駆逐されねぇ?
動画や音声の著作権管理配信はHTML5+JSにならずFlashのままだと思う・・・たまにSilverlight
>>39 それはクライアントサイドの話では…
>>40 flashでやっていたことがJSで出来るようになったんだからflashでしかできないこと(カメラ操作とか)以外はHTML5になると思う
flashの方が簡単とは言うがそれは制作ツールの問題で、事実Macのhype(5でムービーとか作成するツール)などはかなり使いやすい
なんと言っても検索エンジンのロボットがプログラム読めないのはflashの欠点だろう
重くて不安定てだけでもFlashいらね
Flashはjavaくらいのリフレクションが欲しいな。 でも起動が遅くなるかも
はやくhtml device実装されねーかな フラッシュ切りの方向ならフラッシュで出来ること全部実装しろや
jsLinuxの次は、htmlinuxか?w
ブートするのに半日 shellまで行くのに更に半日だな
なにそれこわい
49 :
デフォルトの名無しさん :2011/09/28(水) 08:30:21.45
みんな東京node学園行った? 何だかんだJAVAやPHPが主流でSSJSはマスターベーションで終わりそうだよね JavaScript好きだから個人的には流行って欲しいけど
コールバックだらけで使いにくい
Google Dartが本命。
サーバーサイドに投げる必要のないものまで全部Ajax化して サーバーサイド言語で全部書かせるのが主流の流れじゃないの?
サーバーサイドに投げる必要のないものまで全部Ajax化して サーバーサイド言語で全部書かせるのが主流の流れじゃないの?
大事?
サーバーはJSONみたいにシンプルなデータだけ吐いて あとはクライアントサイドで料理するって形が多いんじゃね
>>53 逆でしょ
極力クライアントで処理するって考えは今と変わらないよ
SSJSのメリットは言語1本化が主じゃね?
>>57 ブラウザゲームのようにクライアント側で
パフォーマンスが重要なコンテンツの場合
jscriptをクライアントで処理する必要があるね。
このような分野でかつ、開発環境を統合しようとすれば
SSJSに必要性を感じるかもしれない。
だがサーバー側の処理が主でクライアント側がオマケみたいな
業務系アプリとかだとJavaとか.Netでサーバー作るのが望ましい。
こちら側のフレームワークがAjaxに全て投げる方式に流れるのは明らか。
連投したうえに今度はアンカーミスった すまん。
いいよいいよ
node.jsはいじって面白いからいんじゃね
サーバ/クライアント合わせて1箇所で書けるMVCアプリケーションフレームワークみたいなの無いの?
>>61 意味がわからん
1箇所に書きたい、かつエムブイシーに分離したい、ってどういうこと?
>>61 よく分からんがQt.jsはJavaScript好きなら面白いよ
一カ所っていうか、透過的にというか? RailsでMVCやって、クライアント側でもBackbone.jsでMVCやって、とかやってると モデル重複して書いてるなーとか、サーバ/クライアントでテンプレート共有したいなーとか思わない? サーバ/クライアントまとめて一つのアプリケーションと見なして作りたいってこと
html, css, scriptを統合するならオブジェクトにするのがいいと思う。 んでSwingとかWinFormみたいなオブジェクトモデルでGUIを構築したいけど、 複雑で動的な部分が楽になる一方で単純で静的な部分が冗長になるから致命的 ってのがオレオレフレームワークを作ってみての印象。 FlexとかSilverLightはオブジェクトモデルをベースに xml/htmlベースの設定ファイル方式を持ち込んだけど(xaml,mxml) 今度はweb側がxml/htmlベースの設定ファイル方式をベースに オブジェクトモデルを持ち込んで複合化したらいんじゃないかなぁ。
デバッグが致命的に面倒そうだな
>>61 Qtって今はNokiaのQt?詳しく教えて
>>67 そう。javascript関係ないところが面倒になる。
Swingとかのデバッグと全く同じ問題点が入りこむからね。
オブジェクトモデルのSwingやWinFormは画面のデザインを変更したら
コンパイルして実行して見てチェックしないといけないところが欠点。
だからhtmlのようにxml系で画面の静的な部位に対して設定ファイルを持ち込むか
VBやホームページビルダーのようなGUIからの自動生成ツールが持ち込まれた。
一方で、オブジェクトモデルは画面の動的な部分が楽。
だまあ今あるハイブリッドなフレームワークはどれも失敗に終わりそうだけど。
分散オブジェクトが盛んだった頃に盛んに研究されたけどね。
して研究成果は
時間の無駄との結論
言語とかでもそうだけど一昔前に捨てられた概念が華麗に復活することもなきにしもあらず
オブジェクトモデルってなに htmlやxmlはオブジェクトじゃないの
ツールつかったらモデルが変わるの
>>74 C#とかのGUIプログラムやXMLのDOMプログラムがオブジェクトモデル。
htmlやxmlはマークアップテキスト。
なにいってんのか意味わからんw
そこのその用語を使うの?って感じで俺も何をいってるのかわからんな
>>68 Qt.jsでググれ
C++のフレームワークのQtだよ
DOMプログラムって何。XMLParserの事? それどもDOM-API使ったプログラム? 後者ならコンパイル不要のJavaScriptっていう言語もあるわけですが。
元もおまいも的外れ過ぎな…
GWTがまさにそれなんじゃないの?
node.jsとかで作ったプログラムを動作させるためには クライアント側にも何か特別な環境が必要なの?
いらん
実行ファイルなんて今の段階で作れたっけか… webアプリならいらなそうだけどでもそれnodeじゃないいやnodeなのかサバーサイドの
「クライアント側にも」
>>86 使ったことないんだろ
cliのツールとか色々あるぞ
>>89 そこが1番ハードルあげてるような気がする
試してみようとしてもwinユーザーが多いし
ある意味ここでかなりフィルタ掛かってそうw
むしろその方がいんじゃね
>>91 まぁね
フィルターで弾かれた技術者はそれまでだしね
>>92 んなこと言っても普及しなきゃ意味がない、というか、オナニーだろ
今時windowsしか使えないような ソフトエンジニアなんていねえだろ
なんかjsとjavaの間ぐらいの感じだな 覚えるのは楽そうだ
>>95 インストールや設定はnode.jsより遥かに敷居が低いね
CとC++とJavaとJavaScriptを混ぜた感じ
>CとC++とJavaとJavaScriptを混ぜた感じ なぜか最悪という言葉が頭をよぎった
>>98 classとprototypeのカーニヴァルが今、始まる
>>61 そこまで理想的ではないけどSocketstreamがいい線いってないかな
0.3のリリースを結構楽しみに待ってる
初めて聞いたんだが サーバーサイドっていうことは 常に起動してるアプリがあるってことか? javaScriptサーバー起動 ⇒ ブラウザからアクセス ⇒ 処理 ⇒ HTMLを返す こんな感じ?
102 :
デフォルトの名無しさん :2011/10/26(水) 02:39:13.56
ん?結構過疎ってるなw
>>101 基本的にはそうだよ
ただ、Nodeに関して言えば
あれは、webサーバが楽に書けるということを主体とした汎用スクリプト言語というだけであって
それこそwebサーバはもちろんだが、gemのようなモジュール管理のためのコマンドライン用のプログラムやら
他言語からJSへのコンバータからX window用のウィンドウマネージャまで色々書かれてある
>>101 サーバーサイドで動いてる他言語も同じじゃん
105 :
デフォルトの名無しさん :2011/10/26(水) 09:00:20.11
わざわざjavascriptをHTMLで返すメリットがわからん
>>105 post、getとsubmitしまくるのかよw
動的ページはCSSのみっすか?
import の仕組みが onload 一点押しというのは。一にセキュリティ上の配慮からくる制約。 ぼんぼん俺は好きなときにスクリプトが走らせるぜ。ふざんけな即ブロック。 そしてそんな駆け引き。 という歴史的経緯も多少関係あるようには思う。importする順とか上から順に解釈されてゆくし そこらへん見えなくなっても仕組みは変えられないし。じゃぁ直接埋め込んで置けばいいんでね?と
え?
>>103 なんじゃそら?
と思ったらほんとにWMあるのなw
面白い情報ありがと
ちょっと興味があったので寄ってみました。 node.jsでチャット作るとしたら、 同時接続数の上限とかどんなかんじでしょうか? rootないレンタルサーバでも動くんかいな?
>>111 ググれ
レンタル鯖だと使えない会社は多い
113 :
デフォルトの名無しさん :2011/11/07(月) 19:57:39.15
node 0.6が出たのでageてみる
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経由で のインストールとか窓に対応してない予感。とりあえず撤収。
ubuntu自体が提供してるnpmは古いからなぁ どこかのppaが提供してる物でないと使い物にならないぞ
116 :
デフォルトの名無しさん :2011/11/08(火) 21:24:57.93
node6.0でnpm使うとバージョンチェックではじかれて使えないとかワラエナイ
npmのディレクトリ内にあるpackage.jsonの中にある enginesって項目を"node" : "0.4 || 0.5 || 0.6"に書き換えて npmのアップデートしろ ついでに言えばnode自体もまだ0.6.0な
そんな面倒なことしないといけないのか・・・
npm入れなおしでも良いよ というかアップデートの順番は npm -> nodeの順でないと nodeのバージョンチェックしてるからね それが面倒ならnvmなりnaveなりを使うべきだと思うよ
nave新しいバージョンを指定するたびに10分はかかるコンパイルをやり始めるから嫌い
js初心者なんですけど、オススメのIDE教えてくだしあ。 やるのはnodeです。 できれば、かっこを上手に整形できる機能があるやつだと嬉しいです。
>>121 間違えたw
IDEなら差ほど変わりはなくね?
好きなの使えば?
jsdo.itとjsapp.usがあればIDEなんていらないな
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出るんだけどどうしたら良いですか?
name = window.prompt("入力してください", ""); これは何のつもりだ。クライアント側で実行される訳ではないぞ。
んじゃなにか入力してもらうときはどうしたら良いん?
その前に何故、node.jsを選んだのか説明してもらおうか
javascript サーバーで引っかかった
あとチャットぽいものを作れればいいなぁと思ってjavascriptを勉強してる
サーバサイド、クライアントサイドの違いの勉強と JavaScriptのさらなる勉強を先にすべきだな
無理せずVisial某を使っとけば
>>132 いきなりnode.jsかよ
まぁあれだ、どーしてもというならYOU TUBEで検索すりゃ10分で作れる
avtokyoは動画配信も予定してないって書いてあったし 同様の行為も禁止しますって書いてあったから無いと思うよ
node.jsは公式サイトだと、hello worldのサンプルぐらいしか 初心者にわかりやすいチュートリアルが無いのが痛い railsみたいに15分でブログ作るみたいな、わかりやすいのがない
わざわざ選ぶくらいの人なら、特にそんなのも必要ないんじゃねーの
そういうのって流行らない技術の典型なんじゃないの
142 :
1 :2011/11/20(日) 14:21:19.21
CSSツールのlessもnode.jsに対応しているし、ディベロッパーのnode.jsへの関心は結構高いようだね。 ちなみにtwitterが公式に公開しているbootstrapもlessで公開されている。
最近のnodeでless動かなくない?
本体の update 早いからな… テンプレートエンジン類の実装はなかなか追いきれないというのは 多少あるかもしれん… whyさんのcuffeekupを動的実行化した?drykupとか 面白そうだと思うんだが…うむ…
Jade触った後にHamlを触ると要素の頭にいちいち%を付けないといけなくてイライラするよね
>>133 サーバーサイドとクライアントサイドの違いをようやく理解できたよ
>>147 それでもまだnode.jsでやる気かよ
いや、まぁ悪いとは思わんけど
node.jsはsocket.io目当てで使いましたが、他に何か面白い使い道ないのかなぁと思ってしまう。 非同期IOでjsっていうnodeにとって、本領の発揮できそうなおすすめなライブラリやネタって何かありますかね? 開発者から見て魅力的なネタやインパクトを出して行かないと今後も流行らないだろうなと危惧してますわ
いや、流行るだろ 時代はLAMPからJanos(JavaScript + Node.js + NoSQL)とか言われてる
>>153 ジャノスって読むの?
NoSQLは結局CやJavaで書かれるし、そこまで流行らないんじゃ
LAMPだってそれぞれ違うでしょ
NoSQLはドキュメント型ならまだしもKVSは落ち目な気がする。
NoSQLがしっかり設計できて運用まで出来るエンジニア node.jsの設置、設定、コーディングが出来るエンジニア そんなに多いとはとても思えない、node.jsもだがNoSQLのが出来る人少なそう
158 :
1 :2011/11/29(火) 12:24:50.96
NoSQLにはユーザが直接保存したデータは保存しない流れになってる気がする 大抵セッション情報とかログデータの操作に利用されてるような
160 :
デフォルトの名無しさん :2011/11/29(火) 12:30:59.64
mysqlの運用は枯れてるからそこに追いつくのは至難の技。 新しい技術が出てmysqlに戻ってを繰り返してる気がするなぁ。
>>159 NoSQLの種類によるでしょ
KVS型とdocument(note)型じゃ全然違うし
8086が出た時には まさか20年以上使われて今だ主流 3Ghz超えるとは思わなかった SQLもしかり
言語側でSQLをまったく書かなくてもいいようなライブラリか何かを用意してくれれば超助かるんですが
要所要所でORMをみたいな融通が聞くともっといいような… とか appengine を使ってて思ったの といいつつあまりよくわかってないな…要課題
nodeにも、railsのActiveSupportみたいな 上位のユーティリティライブラリない? underscoreは、ぎりぎりでrubyレベルみたいだけど、 それより便利な奴が欲しい。
>>167 おお、かなりrubyっぽい。
underscoreみたいな無理やりじゃなくて、
危険を顧みずinstance.method()としちゃってるのが逆にすがすがしい。
escape*(), unescape*()が一通りそろってる。
DateもActiveSupportに負けないぐらいがんばってる。
これは使えそうだ。
いいモノ紹介してくれてありがとう。
>>165 めんどくせえから
windowsもカーネルlinuxでbash標準
IEもWebkitとv8にすりゃいいのに
bash標準になったら嬉しいなあ、ついでにターミナルもまともなものをだな… 現状じゃcmd.exeのせいでシェルもターミナルも両方とも腐ってる
ms dosの時代から連綿と続いてきてるので… それとそういう用途なら powershell 使うというのが推奨されるかな…
>>169 そんな事になったらWindowsの個性がないじゃんw
そんなに使いたいなら普通にbash入れればいいだけの話だしなぁ
cygwin以外で使えるなら教えてくれ
うわ、めんどくさそ…
cygwinってかなり改善されたんじゃないの? 最近Window使ってないから詳しくは知らないけど
cygwin は糞だよ
使ってないわー 最近Windows使ってないわー
必要性があんまないもんな
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("
http://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ページで
http://127.0.0.1:3000/をHelloWorldを表示するのですがロードにとても時間がかかってしまいます またLunascape6.5やIE9、firefox、safariでは表示されますがGoogle Chromeでは表示されません。
何故でしょうか?
183 :
182 :2011/12/06(火) 23:44:39.68
>>183 local lan 内で ubuntu 上にインストールした node.js で実行したものを
ほかのウィンドウズPCからアクセスしてるのかと思ったが
単純にウィンドウズPC一台でローカルでテストしてるのかな…
python -m SimpleHTTPServer
で
http://localhost:8080/ でアクセスしてみてロードでさっくり表示されるか
どうか調べてみると問題の切り分けに多少近づくかも。chromeは、確か
デフォルトの設定だとプロキシかipv6とかその辺の設定で遅くなるとかどこかで
見たような気がする…
>>182 ちと、気になったんだけど・・・
> res.writeHead(200, {'Content-Type': 'text/plain'});
> res.writeHead(200, {'Content-Type': 'text/html'});
なぜ、res.writeHead() が 2 つ?
それと遅い理由は、もしかしたら res.end() がないからかな?
>>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 :2011/12/07(水) 10:00:12.34
>>186 とても早くなりました
ありがとうございます
俺も昔やったな、end忘れ。
addListener と on の違いがわからない
IEとその他の話かい?
もともとaddListenerだたけどonにかわっただけじゃないの?
>>191 なるほど。使用頻度が高いから、短い単語にしたのかな
てっきり thread.on('sage', function () {}); は、thread.onSage = function () {}; みたいなのかと思ってた
調べてもクライアント側で入力したものをサーバー側で受け止める方法がない. わかりやすく解説してるサイト内?
>>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);
http://127.0.0.1:8124/?q=あぼーん を開くと、「 あぼーん 」と表示されるはず
amanelis Alex Manelis At #mongosv, people really do not like #coffeescript.. 手放しで、素晴らしいといえるものという訳でもない みたいだね…
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. セグメンテーション違反です
socket.ioでチャットもどきを作ってるんだけど、クライアントから受け取る文字数が無制限だから仮に1000KBとか送信されたら死ぬ。 if(message.length >= 100) return; みたいにしてもlengthを調べる前に死んでる。 socket.io使ってる人どうしてる?
クライアント側で文字数規制する
クライアント側なんていくらでも改変可能だから意味ないでしょ
このスレはなぜこの板にあるの?スレタイやスレ文からしてwebprog板ではないの?
俺は普通のCLIスクリプト書くのにたまに使ってる
>>197 そう簡単に落ちるものかな
>if(message.length >= 100) return; みたいにしてもlengthを調べる前に死んでる。
これ、他の理由で落ちてるとは考えられない?
>>198-199 それでも、クライアント側で制限はしておくべき
>>202 正確には落ちるわけじゃなくて、負荷が高すぎて重くなるっていうだけなんだけどね。
どんなでかいデータも全部受信してしまうのが原因で間違いないと思う。
何バイトまで受け取るってのを設定できればいいんだが、ライブラリ追った限りでは無理だった。
一応クライアント側でも対策してみる。
on('data')で受け取ってる段階で制限オーバーしたらコネクションを切断するとかそういう問題じゃなくて_
>>203 メモリ管理を自前で実装というのは面倒くさいな
あぁアンカは関係ない・・・ ただのミスだ・・・
>>204 GET、POSTならそれで良いけどソケットだとon('data')が呼ばれるのは受信が完了したときだから手遅れだな
node.jsのモジュールから修正しないとどうにもならないかもしれん
pipe使ってハンドリングできないものかと考えてる
getやpostを使えば コメント:<input type="text" id="comments" value=""> に書かれたコメントを受け取れるって認識でおk?
そんな単純な脆弱性がデフォで対策されてないことに驚いた。 socket.io使ってるアプリ全滅するんじゃね。
cannot find module 'connect'が攻略できなくて困る
エラーメッセージをよく読め。 中腹あたりにhas no method createServerって書いてある。 その次の行にそれが発生した行が書かれてる。
214 :
212 :2011/12/12(月) 13:35:21.35
215 :
212 :2011/12/12(月) 15:24:09.84
expressが入ってないとかじゃないの
217 :
212 :2011/12/12(月) 16:30:49.73
expressはちゃんと使っています
>>215 >>216 が言いたいのはきっと、インストールしているかってことだよ
node.js 入れただけじゃ、express は使えないよ
先頭行にでもdebugger;って埋め込んで node debug get2.jsで起動してデバッグするのが一番楽な気がする 可能ならnode-inspectorなんだろうけど あれって意外と微妙
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 :2011/12/12(月) 21:10:57.64
ダウンロードとかgit cloneとかじゃなく npmで入れたら?
223 :
212 :2011/12/12(月) 23:47:42.54
npmをインストールしてもERRが多いのでgithubで行いました どうにかならないでしょうか?
224 :
212 :2011/12/13(火) 09:13:27.56
解決しました
225 :
212 :2011/12/13(火) 09:14:17.13
解決しました
226 :
212 :2011/12/13(火) 14:33:15.72
http.createServer(); express.createServer(); 上記の2つを1つのjsで共存することは可能ですか? 出来ればやり方が知りたいです
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だよ
app(x,y){ var mon; mon = x + y; }; このクライアント側で作ったxとyの中身を足したmonをサーバーサイドへ送るにはgetを使うのですか?
>>224-225 解決したのはいいけど、せめて原因くらい書いておこうよ
>>226 どう共存させたいのか
var server = http.createServer();
var app = express.createServer();
// 略
sever.listen(8001);
app.listen(8002);
例えば、ポートを分けるとか
>>229 POST でも渡せる
>>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">
上記のリンク先には
http://127.0.0.1:80とindex2.htmのどちらを入れればよいでしょうか?
とりあえず nodeとかに手出さずに PHPなりrubyなりPythonなりperlなりで サーバサイドとクライアントサイド両方の勉強しておいで
node.jsでは正規表現使えない? b = a.match(/[0-9a-zA-Z_]/);でエラーが出るんだが
>>233 勿論、使える
それと、/[0-9a-zA-Z_]/ としたいなら、/\w/ って書いたら?
エラーが出たのならエラー内容を書かないとわからないよ
正規表現についての質問は、他のスレでね
こんなエラー Error: Object #<Object> has no method 'match'
>>235 考えられる原因は、変数 a が String ではない
もしかして、ファイルを読み込んで、それを正規表現で判定してる?
fs.readFile() 等で取得できる data は、String じゃなくて Buffer
だから、data.toString('utf8') して String に変える必要があるよ
>>233 はマルチ臭いぞ
+ JavaScript の質問用スレッド vol.93 +
http://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が云々言われる
http://www.dotup.org/uploda/www.dotup.org2380051.png
Rhinoとかnode.jsとかいろいろあるみたいですが、実装が違うだけで言語仕様は同じものなんですか? 基本的には同じだけどそれぞれ拡張されていて方言があるとかですか? 中身以前の質問ですみません
>>238 言語仕様があるという考えよりもブラウザごとに実装してるポイントが違うので
その最小公約数が Common.js みたいな捉え方を俺はしているが…
サーバーサイドのjsはまたちょっと違うから rhino はサーバーサイドなのか?
Javaでやるなら tomcat とか使いそうな印象があるが…ちょっと俺は知識不足で
上手く説明できないんだけど…
最大公約数: greatest common divisor 最小公倍数: least common multiple 最大公約数の間違いだな。ボケてますな駄目ですな…
どちらかといえば最小公倍数だと思うが
最大公倍数だお
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 :2011/12/15(木) 07:49:46.57
どうもありがとうございますm(_ _)m
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
http://localhost:3000/ と入力すると
console.log(x[2]);
の部分でエラーが起こります。
解決方法はないですか?
246 :
デフォルトの名無しさん :2011/12/15(木) 18:35:13.70
var str = new String("hoge=node"); これ実際に動かしてみろよ
matchをstring以外に使ってエラーが出たとマルチポストしてた人か
このerrorさえ取り除ければなんとかなると思うんです
250 :
デフォルトの名無しさん :2011/12/15(木) 21:22:33.52
>>247 テメーの書いた正規表現がクソ
hoge=nodeにマッチしないからxがnullになって落ちる
あとnew String(req.body)を使うより'' + req.bodyのほうが3倍速い
Node.js のサイトがリニューアルしたな v1 リリースも近いのかな
>>250 5行目の
console.log(req.body);
を見ると
{}hoge: 'node'}
となっているので
var reg = /{(\S*):\s'(\S*)'/;
としたのですがダメなのですか?
>>252 試しに、console.log(String(req.body)); と打ってごらん。それが答えだ
出来ました けどObjecktと表示されてしまいますね・・・ どうにかならないでしょうか?
>>252 ああ、expressを使ってるから飛んできた時点でもうオブジェクトになってんのか
それならわざわざ文字列にして正規表現を使うまでもなく、req.body.hogeだけでいいだろ
>>254 { hoge: 'node' } の中身、"node" の部分を取得したいのなら
console.log(req.body.hoge); // 'node'
それと、Node.js をはじめる前に、もう少し JavaScript を知ったほうがいいよ
最近流行りなのかJavaScriptをろくに知らない人がnodeをはじめる。
いいことだけどめんどくさいな。
>>250 はやいけど、newなしのString(str)のほうが見た目分かりやすいと思うが。
php使いだけどnode.jsにするとどのような恩恵があるのですか?
>>258 phpで表、node.jsで裏の作業すると捗ります。
node.jsでスクレイピングとかはやめてください。
そのうちpregや再帰が使えないとか愚痴り始めるので。
>>259 さんどうもありがとうございます
リアルタイムな通信に利用はしたいと思っているのでnode.jsは使いたいのですが
phpに出来てnode.jsで実現できないようなことがなければnode.jsのみで構築する事も検討したいのです
全般的にはphpに取って代わるような使い方にはnode.jsは不向きと捉えてよいでしょうか?
261 :
245 :2011/12/16(金) 00:11:23.51
もしかしてapp.postで受け取ったものはapp.postの外に持ち出せない?
>>260 すみません。真面目に答えますね…。
まだ発展途上なのでなんとも言えませんが、
基本的にjavascriptそのままなので、phpのような表示は得意とは言えません。
ただjsdomなどHTMLを扱うライブラリはあります。
nodeはクライアント側jsのajaxのように、イベントリスナでつなぎます。
そしてhttpサーバを介さずスクリプト(node)がhttpサーバーとして、
直接個々のリクエストに答えますので、
httpの特定のURLのアクセスをトリガとするphpとは使い勝手が全く異なります。
非同期処理であれば真価を発揮しますが、逆にそれが必要でないなら、
php+apacheなどの方が楽に構築できると思われます。
>>262 ご親切な対応ありがとうございます
リアルタイム名部分のみnode.jsに任せて
それ以外の部分はphpを使ってみます
まさか、Node.js を CGI とかそんな形で使おうとしてないよな Node.js 上で PHP を使おうとか。出来なくはないが・・・ 思い過ごしならいいけど
nodejs上でphpというnpmはあったとは思うがw
266 :
デフォルトの名無しさん :2011/12/16(金) 18:31:35.87
v0.6.6
ejs内にjavascriptのコードを書いてみたけど実行されない そういうものですか? ejsを表示させると共に文字を記入くれって表示させたいんだけど
>>261 外っていうのは、ブロックの外?
どこかわからないけど、持ち出すことは出来るはず
>>267 どんなのを書いたか教えて
【ウェブアプリケーションという不幸 】 現在、多くのプログラマ(素人)が ウェブアプリケーションというものが ベストな正しい方向だと勘違いしている。 ソフトウェアの作るにおいて そのアプリケーションに応じた 状態遷移を実装するというのは 基本中の基本である。 その点においてウエブブラウザという ある状態遷移が実装されているアプリケーションの上に また別のアプリケーションを実装するのは 論外である。 そこまでするなら普通にアプリケーションを実装 してダウンロードして使って もらえばいいのである。 ウェブアプリケーションとは 虚構にしか他ならない。 ウェブアプリケーションを 作ろうとしているあなた。 今すぐ普通のアプリケーション とし設計し始めては いかがだろう。 そうすればきっと後悔しないですむ。
HTMLやHTTPを悪者にはしていない。 TCP/IPができあがり、その応用として、ファイルを送ったりするようになった。 ファイルの中身のテキストにデータ構造をもたせ、それはつまりツリー構造なわけだが その実装としてのハイパーテキスト、つまりHTMLという送る側と送られる側で決め事(プロトコル) をつくり、画像や音楽など表現の幅を広げることは当然の成り行きだっただろう。 そして、その送る側としてのHTMLファイルサーバ、つまりWebサーバ、送られる側としてのプロトコルの解釈・表示系としての ブラウザというアプリケーション。 ここまではいい。 だが、そこから先が素人の発想というか、いそがばまわれを忘れた者の愚かな発想。 つまりブラウザ上で、アプリケーションを動かすという発想なのである。 ブラウザというのは、おくられてきたステートレスな通信内容の一瞬の表示手段でしかない。 つまりアプリケーションのためのひとつのパーツなのである。 Windowsでいえば、コントロールのひとつ。(実際WebBrowserというコントロールがある。)JavaならWebClietnだ(これは、ブラウザではないが。)。 包含関係が逆なのである。 ブラウザ上にアプリケーションを作るのは愚かなブームである。
これがWEBプログラミングの出来ない者の嫉妬ってやつだ
>>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>
こんなのを書きました
>>270 はいはい、SSH端末とブラウザは同じレイヤーのもの。
SSH端末でネットのむこうのアプリを使うように
ブラウザでも使う。あとは向こうで続きをやろうなw
↑なにこいつw
>>276 コピペ野郎の相手なんて
この程度で十分だろ
>>276 かまっちゃだめ。
ちょっとやばいからそいつ。
自演乙
>>273 >>274 で、null の書き方を指摘したけど
それ以前に、どこにも func() を呼び出すものがない
他にもあるけど、JavaScript の質問スレに行ったほうがいい
>>282 ということはejsでもjavascriptが利用可能ってことですね
正式名称はnode.jsなの?それともNode.js? 正しくはNodeなんて書いてあるブログもあるけど、本当は何?
node.js
チャットが作りたいのですが非同期通信のシンプルな程シンプルなサンプルみたいなのどこかにありませんか?
node.jsのサンプルと言えばチャットというくらい サンプルある githubにも、すぐ動くのがあったし、手元の本でもテスト駆動javascriptのサンプルでチャットが載ってた
290 :
287 :2011/12/17(土) 22:13:10.02
express+socket.ioを入れてサンプルコピペでできました
291 :
287 :2011/12/17(土) 23:01:26.74
でもサイトを作るごとにnpmでexpressとsocket.ioを入れるのって無駄なんですが windowsなのでnode.exeの本体が置いてある所に最初npmでexpressとsocket.ioをインストール済みなんですよ
>>285-286 レスありがとうございます。あと、遅れてすみません
曖昧さを避けるために .js をつけているんですか、知りませんでした
>>227 find . -iname xxx\*
node.jsはwebサーバソフトウェアですか?
webサーバソフトウェアってなんですか?
apacheにはWebサーバソフトウェアとあるので同じものではないのですか?
>>296 微妙だがNodeは違うと思う
apacheはソフトウェアだね
>>296 Web アプリケーションサーバではありません。
Apache, Nginx のような HTTP サーバ実装でもなければ、Tomcat のようなアプリケーションサーバでもありません。
Node はあくまでサーバサイドで JavaScript を動かす実行環境です。
>>299 そこまで言って置いてそれは無いわ。
サーバーサイドである必要すら無いんだから。
>>301 はぁ?
>>299 はnode.js日本サイトblogの転記だぞ?
それすら否定すんの?
それと「あくまで」サーバーサイドだから
一体どんな回答が欲しいんだよ…
Web アプリケーションサーバでなければなんて呼べばいいんだ?
>>304 正直どうでもいいし何でもいいけど、論理的な決まりとしては
サーバーサイドでJavaScriptを動かす実行環境
node.jsでアプリを作って稼働させても根本的概念は変わらない
JavaScriptをサーバとして動かすためにのnode.jsってことでいいの?
>JavaScriptをサーバとして動かすためにのnode.jsってことでいいの? 修正 JavaScriptをサーバとして動かすためのnode.jsってことでいいの?
>>307 全然違くてワロタww
クライアントでJavaScript動かす時は基本的にブラウザ上で動くだろ?
Nodeはサーバー上で動くJavaScript
ただそれだけ
だからアプリケーションサーバーやサーバーソフトウェアじゃないのだよ
技術者ですら、これだけ理解できないのだから
営業には全く理解できないだろうなw
ここはnode.jsのことばかりだけどstandard i/o可能なjsやrhino jsの話題でもいいの? と言ってもさしあたり話題にするようなネタはないけど
>>308 んじゃサーバはどこに行くんだよってなるぜ
node.jsは特定のサーバーからは独立した単独のスクリプティング環境。 rubyとかperlとかpythonとかと同じ。 node.jsの実体はスタンドアロンのスクリプト実行環境に過ぎないからローカルのシェルスクリプトとして使うこともcgiとして呼び出すことも可能だろう。 ただ開発の方向にしても主な用途にしてもあくまで組み込みのhttpサーバーライブラリを使ってサーバーを組み立てることを想定してるけどな。 一言でいうならnode.jsとはブラウザの中で実行されるのが普通のjavascript処理系をスタンドアロンのスクリプト実行環境にして、そこに組み込みのサーバーライブラリやローカルスクリプトとして必要なIOその他のライブラリをくっつけたもの。
あと、わからない言ってる人はハードウェアとしてのサーバーとソフトウェアとしてのサーバーの区別がついてないんじゃないかな…
313 :
308 :2011/12/22(木) 18:10:02.19
node.jsでプロキシ経由で外部サイトにアクセスってできますか?
WSHのJScriptをウェブサーバ用途に特化させたみたいな?と思っとけばいいんすか?
>>315 それが今まででは一番近い理解かも知れない
Webサーバ用途に特化…というと微妙に誤解を招く書き方なので
サーバ機で、Webサーバソフトと共に使う用途に特化、という感じか
別にサーバソフトがなきゃ、ちょっとしたJavaScriptの動作環境でしかない
>>315 大着して言うと、そんな感じかな
クドいようだけどwebサーバーじゃなくてwebサーバー的に利用できる。って感じかな
あくまでScriptは手段とかツールに近いからアプリとは断言したくないんだろうね
ありがとう なんとなくわかった
なんで誰もnodeをちゃんと説明できないんだ? 本当はきちんと理解してないんだろう? サーバーサイドで動くとか、別にnodeをクライアントに インストールすればクライアントでも動くんだから的はずれだよ。 簡単に言うとnodeっていうのは JavaScript+組み込みライブラリ だよ。 例えばブラウザに搭載されているJavaScript、これにはDOMを操作する 機能がついているが、これはJavaScriptの範囲ではないというのはわかるだろう? つまりJavaScriptにはDOM機能が ”欠けている” と言えるわけだ。 ブラウザはその欠けているDOM機能を追加したもの。 JavaScriptには他にも機能が欠けていて、たとえばファイルの読み書き機能。 nodeはその欠けているファイル読み書きライブラリなどを追加したもの 他の言語なら単に「便利なライブラリを作りました」で終わるような話だけど JavaScriptには他のライブラリを読み込むincludeやuseなどの文法も欠けているので 既存のJavaScriptを拡張しなければ実現不可能だった。 nodeによってJavaScriptが汎用のスクリプト言語になったわけで ウェブサーバー等も実装することが可能になったということ。
んー nodeはDOM APIを含んでるの?含んでないの?どっちー?
nodeにDOM APIは含んでいない。 ただし外部ライブラリを読み込む機能は付いているので DOM APIを提供しているライブラリもあるかもしれない。 それはPerlにDOM APIは含まれていないが、 CPANモジュールを使ってHTML Parserなどで DOMを操作できるのと同じ事。
> 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の主成分はランタイムの部分という ことになる 「サーバ向き」なだけで、サーバにしか使えないかといえば、別にそういうことはない
V8はコマンドラインから実行できる。
linuxで使いたいですがどうすればいいんですか?
サーバーサイドという字面に振り回されすぎじゃないのかな。 サーバーサイドの○○というのは、今までクライアント(ブラウザ)でしか使えなかったものをサーバーコンピュータ上でも使えるようにしたよという以上の意味は無い。 現代のサーバーコンピュータの多くはwindowsやunix系OSで構成されている。そしてwindows上で実行可能なものは何であれwindowsを使ったサーバーコンピュータ上で実行可能だし、unix系OSもまた然り。(環境依存のものは除く) 現実的には「サーバーサイド○○」というのは、サーバーコンピュータで使用されているところのwindowsなりunixOS上で(サーバープログラムと連携可能な何らかの形式で)実行可能な○○というのと同義と考えていい。 <<324 nodeのソースコードをダウンロードしてmakeするか、nave等の管理コマンドをダウンロードして実行する。やり方はググれ。
えー! node.jsはlinuxじゃ使えないんですか!! 面倒なのは大っ嫌いなので諦めます
そんな頭でLinuxを使うほうが面倒だと思うんだ
多分ubuntu入れてるんだろうな
元々の質問は
>>296 だし、何でクライアントの話に持っていくんだよ…
クライアントでNodeやる云々はそもそもスレタイ的にスレ違い
Nodeの説明としてはいいと思うけど
>>296 の質問には多分「違う」と答えるのが適切と思われる。
webサーバーソフトウェアという言葉でどんなものをイメージしているのかは知らないが、おそらく一式をダウンロードして設定を行なって起動すればその時点で完全なwebサーバーとして動作するもののことを言っているのだろう。
何度も言われている通りnodeはあくまでスクリプト(プログラミング言語)実行環境でしかない。
言うなれば「webサーバーソフトウェア」そのものをjavascriptで作るためのもの。
C#と.Netの関係に似てるかもしれない
>>321 外部ライブラリとしてjsdomがあるね。
一部でネイティブライブラリを使ってる。
webでのクライアントとサーバーと、 osでのクライアントとサーバーがごっちゃになってると思われる。 node.jsに出来ることは、webでのクライアント(ブラウザ内で使われるjavascript)の実行環境にはならず、サーバー(httpサーバー)としての機能を有してる。 osではクライアントもサーバーどっちでもいける。 (例えば、通信を伴わない簡単なファイル変換ソフトとかも書けるし、 ソケットレベルでの操作で汎用サーバーアプリにもなりうる。 他にもシェルスクリプト代わりとしても使える。) 一般的な使い方はhttpサーバーとしてなので、まずはそこから始められたし。
つまらん用語の事で伸びてた。
>>333 node.jsはプロキシ経由での外部サイトのアクセスは出来ないのですか。残念です。
>>335 のような奴らは無駄に話が長いだけで中身がない。くだらないことを長々と
>>334 jsdomでjqueryを使ったり出来るから便利だよね
>>337 俺はわからんが
>>335 みたいな奴ならわかんじゃね?w
rubyやphpでさえ出来るからな
↑何しにきたの?おまえw
何だか議論をしているところをぶった切り申し訳ないんだけど、 process.nextTick() の使い道がよくわからないです。
setTimeout(f,0) みたいにするぐらいならそれつかえって書いてあったぞ
>>341 そう書いてありますね。
気になったのは、setTimeout(fn, 0, arg)でargを渡せるけど、process.nextTick(fn, arg)とは出来ないことです。
>>342 setTimeoutでもそうだけどargの必要性あんの?
setTimeout(function () {
fn.apply(this,[arg])
},0);
ってすりゃほぼ同じ意味なのに
setTimeout(function () { fn(arg) },0); これでいいだろ
>>343 ,344
function (i) {
setTimeout(arguments.callee, delay, ++i);
}
わたしは、こういう書き方することがあるので、第3引数があると便利に思える
>>346 this の値が意図しない値になってるだろ。
>>347 arguments.callee は非推奨になるから。
関数本体からのみ参照できる名前を付けて代替した方がいい。
>>348 thisはグローバルオブジェクトだろ。
っていうか 第3引数があれば、どこかから渡されてきた謎のfunctionをそのままsetTimeoutできるじゃん。
第3引数をセット出来る時点で渡す値は解ってるんだから
別に第3引数が無くて困る事は無いだろ
>>347 の事例だってクロージャ使えば値の束縛は可能なんだし
>>348 >this の値が意図しない値になってるだろ。
意味わからん。一般的な使い方だとどちらもグローバルオブジェクトだろ
StrictModeの時は確かfunction内がglobalじゃなくなったと思うが
その時の話しをしてるの?
まぁどちらにせよsetTimeoutから呼び出される関数の
this値をセットしてるんだから結果は一緒だろうけど
そんなにそんなに焦るなってよw
>>352 だからsetTimeoutする時にいちいちその場でクロージャを生成しなくてもいいように第三引数があるんじゃないの?
クロージャを無駄に生成せずにすめばそれだけプログラムのネストも浅くなるし、多段のコールバックも書きやすくなるんじゃない?
setTimeoutに第三引数など無い。
荒れてんな
arguments.calleeなくなるの?
なくなりますん
>>354 それは確かにそうだが話しの元は
>>342 であって
第3引数を設定できない事が気になるような材料でもないだろって事だよ
>>355 HTML5からはちゃんと仕様としても定義されてるし
NodeのsetTimeoutに関してはちゃんと定義されてるぞ
何気なく質問しただけで、こんなことに・・・
何気なく質問するだけで物凄い勢いを増す スルーされるより全然いいでしょw みんな注目してるんだなぁ
Node製のサイトはまだまだ少ないけど、それなりには注目されてるんだな ホスティングサービスはどこ使ってる? それとも自分でサーバ用意してる?
これってサーバーサイドをJavaScriptで書くってことは 今までのウェブアプリ全部作り直しってことだよね?
本でサンプルを入力してるんだけど require.paths というのはもう使われてない NODE_PATH でって言われて NODE_PATH ='honya/lib','honya/deps'; ってやってるんだけどlibにおいてるクラスがみつからないって言われてしまう v0.6.6とv0.4.7でやってみました パスの指定がなにか間違ってるんでしょうか?
>>363 PythonからRubyに切り替える時だって当然全部書き直しだろ。
何をアタリマエのことを。
なぜ全てのウェブアプリをnode.jsで書き直すの?node.jsが向いているものとそうでないものとがあるから 向いていないものまでnode.jsを採用する必要はなくなくない?
>>366 > なぜ全てのウェブアプリをnode.jsで書き直すの?
誰がそう言ったの?
> 向いていないものまでnode.jsを採用する必要はなくなくない?
そうだね。
前の仕様は次には跡形も無くなっているくらいで まだ本を買うには時期が早過ぎじゃないかと 公式か日本ユーザグループのとこのドキュメントを読むといいよ
プログラミング本なんてまだ買ってる人いるんだw 1ヶ月でコロッと何もかも変わってしまうことがあるこの分野でw
node本ってまだ出てなかったと思うが 多分一部取り上げられている記事とかパーフェクトJavaScriptあたりだろう
>>367 > 誰がそう言ったの?
>>363 をそう解釈したっす
そういう意味ではなかったんすね
ごめん
オライリーが出してたな。 公式が全文公開してるけど、内容は確か0.4あたりだったはず。
読んでるのはテスト駆動JAVASCRIPTです たまたま手元にあってサーバサイドのところは読み飛ばしてたんで今読み直してたんです
>>367 >誰が言ったの?
>>363 >今までのウェブアプリ「全部」
おもっくそ自分で全部って言ってるじゃんw
363が本当はどういう意味なのか、それは363にしかわからない
普通に推察すれば今まで自分たちで継続的に開発してきたWEBアプリがあって、 そのWEBアプリをnode.jsで運用するように移行した場合に、 今まで自分たちで作ってきたWEBアプリを全部javascriptで書きなおすのか、 という意味に捉えられると思うよ。 既存の世界中の全てのWEBアプリをnode.js用に書きなおすなんて不毛なことは誰も考えないでしょ。
自分で作った個々のウェブアプリも、別に全部移植しないといけないわけでもないと思うけど。
でもさ、なんかの処理をあとから node.js使いたいってことになったら、 その処理書きなおすんでしょ?
_人人人人人人人人人_ >わりとどうでもいい<  ̄YYYYYYYYY ̄ ヘ(^o^)ヘ |∧ /
「今までの」「全部」だから「ウェブアプリ」はひとつじゃなく複数を指していると読めるんだよね で、その作ってきた複数ある個別のウェブアプリをそれぞれ全部作り直ししないといけないのか、って聞いてるように読めるんだよね
ここまで rhino の話題は無し
ライノいらないの
処理の一部を外部化するのにたまに使ってるよ
ルビー(高速なのでたまに使ってますが)から転向して、ライノはある程度把握しましたが、ライノの細かい挙動このとまでは必要ないので今のところライノ・ネタはありません。
rhino は2回使っただけで 使うのが嫌になりました。 なぜでしょう?
>>387 Rhino 使ったことない。
俺には、全然わかららいの orz
>>329 ubuntuはLeeさんだっけかryanさんだったかなのppaで入れても
0.6.3なのだ。素の状態だと0.4.3なんだ…
まぁ10-15分くらい掛ければgitからソース取ってきて
じぶんでビルドできないこともないけど
ほかの鳥はのことはよくしらないの
ジャバも普通に使えるのでライノでやります 次期ライノ(多分1.8R)はnode.jsも含まれるって聞いたのでさしあたりライノのままで問題も生じません
392 :
385 :2011/12/24(土) 23:17:03.17
降参?
>>390 chris-leaのPPAだな
けどそれらを使うよりnvm等を使った方が良いと思うよ
>>364 勘違いしてるみたいだけど
NODE_PATH は JS ファイルに書くわけじゃないよ
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
http://127.0.0.1:8124/ ');
5行目の「response.writeHead(200, {'Content-Type': 'text/plain'});」
この中の200ってどういう意味があるの?
教えてください
HTTPステータスコードでは
データの保存はkvs?だとかNoSQL的なものがnode.jsにはお似合いなんすか?RDBMSやファイルIOは駄目すか?
>>398 ダメじゃないが、RDBよりドキュメント志向DBのが遥かに相性がいい
(処理に掛かる時間が圧倒的に違う)
nodeを新規でやるならKVSのがいい
既存DBがRDBでDB再構築がダルければRDBで良いかと
ファイルI/Oでも全然問題なく使える
どうもありがとう ファイルIOにしようかなと思ってたけどドキュメント志向型DBはそんなに速いんすか kvsとは違うっぽいけどMongoDBってのが流行ってるみたいなのでそれ試してみます
socket.ioのサンプルをいろいろ探してたらexampleディレクトリにもとからはいっていたでござる
記事は新しいけど内容が数年前のものだのー
pestbinに貼られたのは2011年11月みたいだけど
どうして「Web Framework: Express」や「Web Sockets: Socket.IO」みたいな機能はデフォで提供されていないの?
CAも提供してるサービスでデータが飛んだとかあったな やっぱ規模(データ量)が大きい(多い)とヤバいってのはマジなんだな まぁ今更SQL文書くのも怠いけどw Mongoの仕様上防げない気がする Mongoがこれ以上逝ったら日本では間違いなくNodeは流行らない要因になるな
>>405 どうしてJavaScriptは、jQueryがデフォで提供されていないの?と似た感じだな
>>407 ああ、ごめんなさい
サードパーティ製モジュールはnode.jsコアの機能を組み合わせて書かれているんですね
別の言語で書かれたバイナリファイルも含んでいるのかと思ってました
例えば、コードに debugger を入れたときだけログ出力することは出来ますか?
質問がよくわからないんだぜ
411 :
409 :2011/12/29(木) 14:29:50.62
>>410 debugger;
if (...) {
console.log('#debug');
}
console.log('Hello, world!');
debuggerが、あるときだけ"#debug"を出力するようなことです。出来ますか?
649 デフォルトの名無しさん [sage] 2011/12/29(木) 14:50:37.28 ID: Be:
学生プログラマ日本一決定戦(予選は社会人も参加可)
ttp://codevs.jp/howto.html 現在予選開催中
応募締切 2012.1.6 12:00
おもしろいことやっているじゃん。誰か今から参加しろよ。
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 は精進が必要な様だが。
>>398 現状のnode.jsに適してるのは、ハイパフォーマンスが要求されて
かつシンプルなアプリケーションやAPI(かつCPUバウンドでない)だから、
結果的にKVSの方が目的に合う可能性が高い。
個人的にはnode + mysql handlersocketとかは、結構期待してるんだけど、
人柱様達に任せたい。
サーバサイドもクライアントサイドもjsで書けるようになる
事によるメリットを活かして、何でもnodeで書けばいいじゃん、
に至るには現状のシングルループ指向からの転換を経る必要があると思う。
それは、javaとか.netでしょ普通
>>415 マルチプロセスはclusterとかで既に出来るけど、
CPUバウンドかIOバウンドかバランス考えながらコード書くのはめんどいのよ。
接続数の数だけループ回す必要は無いとは思うけど。
じゃあどういう単位で、というと更にあれだけど。
外部の計算環境も考慮することつまり The Networking is the Computing. を掲げるならそうかもね。
これからプログラミング勉強しようと思うのですが phpだったらJavaScriptの方が勉強したほうがいいですか?
単純に勉強するだけならPHPちょっとやってサーバサイドの仕組みを覚えてからjavascript 仕事でやるならPHPしっかりやって合間にjavascript
SPAだとAPIの集合みたいにアプリ書けるけど、SEO考えるとねぇ
os.networkInterfaces() って, node.exe だと動かなくね?
>>421 いま手元にWindowsないから確認できないけど、それNode 0.6?0.4にはないから動かないよ
良かったらOSのバージョン教えて
423 :
421 :2012/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}:
メディアの状態. . . . . . . . . . : メディアは接続されていません
>>423 Windows XP、7 で試したら空のオブジェクトが返ってきた
getNetworkInterfaces()も試したけど「networkInterface()使え」って怒られて、同じように空のオブジェクトが返ってきた
まだ未対応なのかも
425 :
421 :2012/01/06(金) 20:13:14.22
なるほど,俺だけじゃないんだな 情報d
426 :
デフォルトの名無しさん :2012/01/07(土) 07:32:24.10
apacheより沢山のアクセスを捌く事が得意と記事見たんだけど、 DoS攻撃にも強いって事? 開発コスト的な事を置いておくとしたら、 可能ならapacheよりnode.js使った方が良いって事?
>>426 Webサーバとしてのパフォーマンス比較ならnginxでええよ。
DoS対策はまた別の話で、
Apacheでもnginxでもnodeでも別途必要だと思うけどね。
428 :
デフォルトの名無しさん :2012/01/08(日) 23:29:37.54
javascriptでcgiしたいんだけどおとなしく別の言語にしたほうがいいのか?
>>428 初学者で無駄な苦労したくないなら、まだPHPとかRubyがいいよ。
nodeはまだまだバージョンアップ激しいし。
430 :
デフォルトの名無しさん :2012/01/09(月) 16:17:14.23
>>429 ありがとう
fx拡張ちょくちょく作るくらいにはjs知ってるけど、rubyとかは見た目キモくて触った程度しかない
c++も11で使いやすい感じになってきたので他の言語も色々試しつつ決めようかな
431 :
デフォルトの名無しさん :2012/01/09(月) 16:49:25.07
433 :
デフォルトの名無しさん :2012/01/09(月) 19:36:30.38
>>432 動的か静的かなんて関係なく、自分が使いやすい言語を使うだけなんで
いろんな言語触るの楽しいしね
>>430 js自体の経験がそれなりにあって、
英語の情報読むのも苦にならなければ、
nodeから始めるのもありかもね。
それでも環境として枯れてないから、
どちらかといえば生PHPで小物書いたり、
RubyでRailsとかのが、
楽にサーバサイドプログラミングを学べるとは思う。
学習曲線と仕事での需要を無視出来るなら、
どの言語で何を初めても無問題。
そうするとnode.js触ってる人は、一体何に使ってるの?
俺は WebSocket を使ってみたくて いろいろ調べてたら Node に行き着いた socket.io 最高です^^
現状、実務レベルで使ってるのは一部の先進的なソーシャルアプリ系企業とか、 それぐらいじゃないかね。
うちもOKもらって使ってる。ソーシャルアプリ全く関係ないけどw
俺は単にブラウザ外でjs使いたいがために使ってるな
ブラウザ外で使うのなら、wscript.exeでいいのでは? もちろんJavaScript(JScript)が使える。
皆がWin使ってるわけでもあるまい
すべてのJavaScriptが同じだと思うなよ
>>441 JscriptはJavaScriptではないだろ
node-mysqlなんかでssl接続するにはどうしたらいいのだ? 他のライブラリ見ても出来ないしもしかして本格的にNode.jsでmysqlを使ってる人ってすくないのだろうか?
と言う事はflagsを指定してCAなんかのファイルはmy.cnfに設定すればいけるんかなー とりあえずそんな感じでやってみるです サンクス!
node0.7からマルチスレッドでマルチループが出来る、 isolatesが使えるようになったぞ。
>>452 おお、WAFじゃなくてGYPになったのか
ビルドにPythonいらなくなるのか、 と思ったけどGYPもPython製だったでござるの巻。
node.jsの分割って出来ますか? うまく説明できないのですが、例えば、サイトにチャットやゲームを追加したいときに PHPだとchat.phpやgame.phpを作ってアップロードすればいいだけですが node.jsでも後からchat.jsとgame.jsをアップロードするだけで反映させることって出来ますか?
>>455 一応可能といえば可能。
ただPHPと違ってnodeの場合実行する必要がある。
やるとすればnodeで特定ディレクトリ以下を監視しておいて
変更があればよみに行ってアップされた物を実行するだけ。
457 :
455 :2012/01/21(土) 22:23:18.95
>>455 の続きです
リクエストを受け取ってレスポンスを返すだけのindex.jsがあります
現状だと、下記の処理を行う際にBのファイルのプログラムを実行させられなくて
追加したいプログラムをindex.jsに書き足しています
@リクエストを受ける
A該当するファイルを呼び出す
Bファイルがnode.jsならファイル内のプログラムを実行 <= この部分を何とかしたい
C結果をレスポンスで返す
cgiとして呼び出すとか
node.jsよく知らんが不便なんだな
javascriptだ死ね
>>390 ppaに0.6.8来てたわはー
しかしバックポート何だそれ旨いのタコスなのみたいなかんじでワロタ…
ワロタ…
Node.jsってhashdosに対する防御法ってあるの?
V8は対策済みじゃなかったっけ?
昨年末に対策してたんじゃなかったかな。 だから年明けリリースの0.6.7あたりからが対策済みだったりするのかも (どこから対策済みかわからん)
更新しておけばよかったorz
>>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が呼ばれる的な。
あと本番環境では普通動かさないだろうけど、 ファイル更新を検知して自動でサーバ再起動してくれるツールもある。 npm install superviser して superviser app.js
>>461 ,
>>464 ppa 0.6.9-2 に更新確認。一週間でマイナーバージョンが1
上がって行ってるかんじだな…
V8がDartに対応したら、nodeもDartで書けるようになるのかな?
V8はJavaScript実行エンジンなんだから、Dart用の実行エンジンが別にChromeに載るのでは
Dartコンパイルして突っ込んでみたけど バックエンドでV8使ってたよ 結局V8方言ってことじゃないのかな、型付きの
node.jsをC++に翻訳して動かしたらもっと早くなるの? そういうの無理なん?
よく考えたらv8使ってるんだから 元のコードはC++で書かれててjs側で呼び出してるってことか? そこまで単純じゃない?v8自体のエンジンもカスタマイズしてるのかな?
基本はそんな感じ まぁソースは公開されてるから読んでこれば良い v8のカスタマイズは普通せんだろ カスタマイズしたらv8のアプデ時にめんどくさい事になる
極端な例、素数判定にエラトステネスの篩をJSで書いてたとして そこをC++で置き換えて返すと書くと約10倍速くなる でもnodeなんて使ってる時点で、ボトルネックはネットワークの方にあるのがほとんどで 頑張って報われるかというと微妙 (Googleみたいに大規模+高負荷だと報われる) C++得意だから、nodeはあくまでインターフェースに徹するっていうのは方向性としてアリ 公式の拡張サンプル良く出来てるから、一度拡張書いてみるといいよ
nodeという名前からして、 CPUヘヴィーな処理は別の言語に任せて、 糊に徹しろよ、的な趣は感じる
Nodeなのに標準でDOMが扱えないとか
domはブラウザ側の実装依存が強いんじゃないかな? 何らかのC++のアプリに組み込むにしてもdomの出番はなさそうだ 強いて言うとxml parserがあると助かるくらいじゃない?
jsdom便利だけどバージョン変わるとよくエラー出る とくにjquerify便利なんだけどよく死んでる
481 :
デフォルトの名無しさん :2012/02/16(木) 08:36:27.59
初心者スレってないんでしょうか?さっき知りましたnode.js これって、ゲームとかで使うのにいいんですかね? 現在のイメージではhtml5でflashの代わりにゲームみたいな コンテンツを作るのに便利な言語って思ってますが違います?
まずはJSの勉強しろ ゲーム系するならhtml5とcanvasも必須
ゲームやるなら enchant.js でいいんでないの? まぁ使ったことないんだけどw
485 :
デフォルトの名無しさん :2012/02/16(木) 13:50:43.11
JavaScriptに#includeみたいなのないよね どこで何が使われてるのかどこで宣言されてるのか、依存関係わけわからんくならんの?
nodejsならmodule使うから明示的でわかりやすいと思うが Webなら自分で管理しろってだけだな
CoffeeScript使うとモジュール化しやすいぞ まあ結局、命名規則に依存なんだけどな クライアントでrequire.jsみたいなのも、あることはあるが
クライアントサイドだったらミニファイするしな
JSのNudeと聞いてきました
農奴と聞いて
491 :
デフォルトの名無しさん :2012/02/20(月) 13:58:09.67
マルチコアで効率的に動くようになった? まだ?
isolatesは廃止になりました
V8側はマルチコアいけるのにだめなの?
今はまだ時期じゃないっぽい
http://d.hatena.ne.jp/y-kawaz/20120117/1326784301 >追記(2012-02-05) Isolateの組み込みは一旦取りやめに
>先日NodeのリーダーがRyanからIsaacになったというニュースがありましたが、
>そのIsaacさんのPOSTによると、どうもIsolateはまだまだ不安定で内部も複雑になってしまう為
>これに注力しても労力の割に得るものは少ないとの判断で、一旦これを取りやめ、
>代わりに Domains 機能に力をいれるそうです。
>ただ、Isolatesを諦めたわけではなく優先順位の変化なだけで将来的にNodeに組み込まれる予定は変わらないっぽい、ただそれが次のメジャーバージョンであるv0.8.0の時ではなくなったということのようです。
>まぁ、機能的にはIsolatesはマルチプロセスのforkで代替できるし、正直Domains機能のほうが面白そうなので全く問題なし。
>>493 イベントモデルでのIOの多重化を選択したのは良かったけど
何か考えがあったのか、それとも実装が楽だったからか
ともかくnode.jsはシングルスレッドベースで作られた
console.log() って, printf() みたいに使えるのかと思ったけど %X 認識しないんだな さて,どうやって 16 進数で表示するかな・・・
number.toString(16) JSの勉強しろ
そういえばjqueryのプラグインにformat文使えるやつあったな あれnode.jsでも動くんかな??
499 :
496 :2012/02/22(水) 11:25:01.84
>>497 d
でも桁数が揃わない・・・
もっと勉強してくるわw
0埋めとかはslice使えばできるよ
501 :
496 :2012/02/22(水) 13:32:56.51
>>500 おお,こんな方法があったのか
var n = 10;
console.log('HEX: %s', ('0' + n.toString(16).toUpperCase()).slice(-2)); // HEX: 0A
おまいらのおかげで出来たよ,ありがとう!
502 :
デフォルトの名無しさん :2012/02/23(木) 01:16:09.43
node.exe って 64bit の Win7 だとダメとかあるか? nodejs.org のサンプルさえ ちゃんと動かない Win7 32bit のノートなら動いた
504 :
502 :2012/02/23(木) 01:47:17.45
nodeにリンクする開発者向けのファイルだね win7 64bit環境によって、32bitの共有ライブラリが足りなくて、 動かないパターンなのかな。 ともあれ動いてよかった。
506 :
デフォルトの名無しさん :2012/02/23(木) 23:58:09.40
node.js愛してます というかJSしかわからない ってことで今ブラウザあればnode.js使ったアプリ作れる環境作ってる んで作ったものは自動でworker化するようなもの作ってる 将来的にiPhoneのリマインダー的なもの作りたい
win x64 用の msi キタ (unstable
NetBSD 5.1 でコンパイルしてみたけど v0.6, v0.7 ともにダメだね
509 :
デフォルトの名無しさん :2012/02/26(日) 14:57:11.22
nodeをv0.6.11にしたらnode-webworkerが動かなくなりました webworkerを書き換えて sys→util require.paths→消して他のrequireをフルパスで書き換え process.binding→消す のようにしたらエラーは出ないのですがworkerが全く動いていません 他に原因はあるのでしょうか?
node-webworkerは現在既に開発が停止しております(最新版はサポートされません マルチプロセスなら組み込みのclusterやスレ上記のisolateをお使いください
どうしても使いたいなら自分でgithubからフォークして 自分でメンテするなりなんなりすればいいが node-webworkerの人が開発する気力失せたのはclusterのせいだから 素直にclusterを使うのがいい
512 :
デフォルトの名無しさん :2012/02/26(日) 16:18:35.33
どうもclusterの使い方がいまいちわからなくて... clusterで別のソースファイルをworkerとして動かすにはどうしたらいいのでしょうか webworkerでは new worker("worker.js"); でできたんですけど..
node.exe 環境での package.json についてだけど "main" : "C:\hoge\hoge.js" だと動かなくて "main" : "C:/hoge/hoge.js" だとちゃんと読んでくれるみたい ちょっとハマった // node.exe v0.7.5
知らんけど、"C:\\hoge\\hoge.js" じゃないの?
515 :
デフォルトの名無しさん :2012/02/26(日) 23:11:20.06
cluster.setupMaster()で起動するワーカーのソースに他のファイルを指定できるのはわかったがなぜか一回設定すると変更できない ひとつのプログラムでcluster化したい場所が二ヶ所以上あるとつかえないのかな? こうなるとwebworkerが使いたい...
516 :
デフォルトの名無しさん :2012/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使いたい......
clusterのソース読めば良いよ あれ結局はforkしてるだけだし
518 :
513 :2012/02/27(月) 00:49:09.66
>>514 確認したら大丈夫でした
っていうかそっちのが正当かも
519 :
デフォルトの名無しさん :2012/02/27(月) 02:01:54.48
>>517 すみません
clusterのソースってどこにあるんでしょう...?ポリ…σ(-''-;)
522 :
デフォルトの名無しさん :2012/02/27(月) 14:15:15.92
結局clusterモジュールを
>>516 で満足のいくように書き換えることにした
ちょっとかかりそうだな
ちょっとかかりそうだね
ちょっとかかるかもね
525 :
デフォルトの名無しさん :2012/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にコピーされるから別もんとしてつかえる あとは別のファイルから動いてるマスターとワーカーをどうやって通信させるか かな
スレ違いかもしれないけど、Aptanaとかでexpressのコード補完とか出来ないのかな 出来れば凄く便利になるんだけど・・・
言い出しっぺの
>>526 がエクステンション作ってくれるらしい
拍手!
528 :
デフォルトの名無しさん :2012/02/28(火) 15:00:48.28
vim + neocmplcacheでいいんじゃね
>>528 ☆−(ノ゜Д゜)八(゜Д゜ )ノイエーイ☆
530 :
デフォルトの名無しさん :2012/02/28(火) 18:52:00.89
ServletやStrutsのような使い心地のフレームワーク作成ちう
それあかんやつや
533 :
デフォルトの名無しさん :2012/03/02(金) 18:11:10.92
534 :
デフォルトの名無しさん :2012/03/02(金) 23:27:36.26
やっぱ例外処理がネックだね。 キャッチされない例外処理と、レスポンスを結び付けるのが難しい。 vm.createScript/createContext/runInContextを組み合わせて、 リクエストをそれぞれ別々のコンテキストで実行する方法なら、 何とかならない訳ではないが、メモリとパフォーマンスの問題あり。 因みに、その方法はError.prototypeをコンテキスト単位で拡張しておく。 するとprocessでキャッチされない例外を受け取った時に、 例外オブジェクトが拡張された状態になってる。 そこに事前にレスポンスを結び付けるという方法。
535 :
デフォルトの名無しさん :2012/03/02(金) 23:36:21.26
例外処理は、Greeがnode-greeという独自モジュールで、 非同期処理をtry/catch出来るようにしているらしい。 node-fiberをみると、ネイティブ拡張で、関数の実行を途中で止めて、他の関数に制御を渡すというのをやってる。 原理は同じなんだろうね。 キャッチ漏れ対策はどうしたもんか。。。
536 :
デフォルトの名無しさん :2012/03/03(土) 00:32:26.46
expressってやっぱいいの?
expressはrubyでいうとRailsにもSinatraにもなれる素敵フレームワークだからな 一部例外除いてnode製のwaf名乗ってる奴、だいたいexpressのDSLだし zappaとかaceとかtower.jsとかmatadorとか expressの使い方わかってれば、以上のライブラリ好きに拡張できるよ
ただ、expressはrailsやsinatraと同じで 今は流行ってるが一時的ですぐ廃れそうなんだよな。
539 :
デフォルトの名無しさん :2012/03/03(土) 18:48:59.77
なにも流行ってるものを使わなきゃいけないわけないだろ 自分が使いたいものを使えばいい それ言うならnodeじゃなくてもっと流行ってるPHP使えよ
PHPよりもJavaの方が流行ってる。
マジレスで、今の流行りはPython
Javaって流行っているのか? 簡単なものを作るのには、expressは便利だよ
JSの事をJavaと呼んでるんだろう
それはお前だけだろw
なんでわざわざJSと書いてるのに 俺がJavaと呼んでる事になってるの? 頭大丈夫?
昔そういう勘違いして馬鹿にされて それが今もトラウマになってるんだろw
ただ煽りたいだけの頭痛い子か
接続中のクライアントをサーバ側でランダムにマッチングするようなことはできますか? Node.jsはシングルスレッドのため、別スレッドで検索しつつ見つかったら〜みたいなこと 出来ない気がするので・・・。 わかる方いらっしゃいましたら教えて頂ければと思います。
なんでnode.jsっていうんですか?正式名称はnodeじゃないんですか?
>>550 イベントループでもマルチスレッドっぽい事は出来る。
553 :
デフォルトの名無しさん :2012/03/04(日) 16:32:45.86
今のバージョンってCygwinに入らないのか。 ./configureでCygwinはサポートしてないぜって怒られる。 単純にfibers使いたいだけなんだけど、 Windowsサポートされてないし、 かと言ってLinux環境作るのが面倒い。
554 :
デフォルトの名無しさん :2012/03/04(日) 16:34:41.52
Windowsサポートしてるだろ
書いたとおり、fibersというモジュールは、 Windowsに対応していないんだ。 ソースみるとpthreadとか依存しまくりだし、 作者も公式で、対応出来るけどヤラネと言ってる。。。
cygwin上でのビルドで怒られるのは、node.js本体で0.6系。 fibersは試してないけど、cygwinならいけそうな気がする。
559 :
デフォルトの名無しさん :2012/03/04(日) 22:30:25.04
>>550 何をしたいのかがよくわからんけどclusterで行けると思う
おれはclusterでgizmodeのページを監視させて、更新されたらクライアントに通知がいくようなもん作った
>>552 ありがとうございます。
試してみます。
562 :
デフォルトの名無しさん :2012/03/05(月) 18:55:40.43
node.jsとC言語で実行時間比べてみたらほぼ同じ速さだったんだがスクリプト言語でここまで速くなるもんなのか。 空ループと乱数発生させるだけのループしか試してないけど複雑な処理だと差が開くのかな。
ヒント:JIT
564 :
デフォルトの名無しさん :2012/03/05(月) 19:24:08.05
v8は内部で部分的にコンパイルしてるからスクリプト言語でも速い
565 :
デフォルトの名無しさん :2012/03/05(月) 19:55:51.51
いくらJITコンパイルしてるからってC言語と並ぶとは思わなかった。Cでモジュール書くことも出来るけどほとんど必要なさそうだな。
どっちかというと、ネイティブじゃなきゃできない事とか、 ネイティブのライブラリを呼び出すとか、 そういう用途がいいんじゃないかな。 あと、大量データを一括で渡して計算結果をもらうとか。 GPGPUなんかは計算だけならCよりも更に速いので、 そういうのを呼び出す用途もいける。 V8の特性はよくわからないけど、 ネイティブ呼び出しのオーバーヘッドって、 それなりに高いと思うんだ。 それを考慮したベンチをとったのかな?
567 :
デフォルトの名無しさん :2012/03/05(月) 20:46:49.07
>>566 なるほど、詳しくありがとう。
JSじゃ出来ないことをするにはモジュール必須だね。
オーバーヘッドについては気になったからMath.floor(Math.random()*10000000);とかのループも試したけどCと同等だった。
一度呼んだ関数はキャッシュされてるのかもしれないが。
> 空ループと乱数発生させるだけのループしか試してないけど複雑な処理だと差が開くのかな。 それだとコンパイルしたら、コードなくなるんじゃね?
もうちょっとヘビーな処理の方がいいかも。 ネイティブ呼び出しのオーバーヘッドが、無視できるレベルのヘビーなベンチなら、 恐らくCの方が速いと思われ。 ネイティブコードはコンパイル時の静的な最適化で、 JITは実行時のメトリクスに合わせた動的な最適化だから、 ケース次第ではJITの方が速い場合もあるけど。
かなり重い処理させるとCのほうが速いね。それでもnode.jsの1.1倍くらいだが。
V8だけ無駄に評価されすぎじゃね? たまにはSpiderMonkeyも思い出してあげてください・・・
文字列連結ってブラウザのJSではかなり多い処理なんで、 それに特化したチューニングをしてるとは思われる。 何かのベンチではV8よりも、IonMonkeyだかJaegerMonkeyの方が、 若干速いという記事を見た覚えがある。 AS3/AVM2もケースにおいてはV8よりも速いみたいだし。 処理によって速い遅いというのは、チューニングの特性が大きいのかもしれない。
JSは文字列を扱う機会が多いわりに遅いってイメージ。 でも、V8とかはそんなに速いのか。node.js使ってみようかな。
node.jsで子プロセス作ってそこから親プロセスのメモリにアクセスすることって出来ますか?
576 :
デフォルトの名無しさん :2012/03/06(火) 18:33:47.11
親と子のデータのやり取りはできるけどメモリにアクセスできるかはわからない
共有メモリは無理かな
578 :
デフォルトの名無しさん :2012/03/06(火) 19:59:43.06
なんか行けそうな気がするけど
579 :
デフォルトの名無しさん :2012/03/07(水) 01:19:06.32
みんなnodejsでどんなもん作ってる?
node.jsで何か作るためのライブラリ。 メタ開発面白いお。
V8はC++で作られててC++のランタイムをどうのこうのって書いてあった
node.jsでJavaVM作ってその上でRhino動かそうぜ
583 :
デフォルトの名無しさん :2012/03/07(水) 15:17:15.51
584 :
忍法帖【Lv=32,xxxPT】 :2012/03/07(水) 15:20:10.22
できるもんなのか...?
585 :
デフォルトの名無しさん :2012/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
それって process.on('uncaughtException',function (e) {}); とかでもとれないやつ?
query関数の引数のコールバックは非同期だから、 getAccountをtry catchで括っても無駄。
PHPとnode.jsのセッション情報共有って出来ますか?
>>588 どうやって共有するかによる。
PHPは独自のシリアライズ方式で値を保存、復元している。
node.jsには標準がないので、PHPのシリアライズされたデータの、
エンコーダーとデコーダーを作るのが手っ取り早い。
と思ったら、npmにnodePhpSessionsというのがあるわw
見てないけど、多分上記の様なことやってくれそう。
レポよろしく。
590 :
585 :2012/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 :
デフォルトの名無しさん :2012/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 :
デフォルトの名無しさん :2012/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 の方がいいですね。
redtamarinにnode.jsくらいの基本ライブラリがあって、 ネイティブ拡張がやり易いなら、結構普及するんだろうな。
>>594 スキル不足でSoket.IOと紐付け出来ませんでした\(^o^)/
Tower.js使ってみた人いる?
とりあえずscaffold使ってみたりした 基本的には mongoose, express, coffeekup でラッパ作ってMVCならこうなりますって感じ Railsに準じた構成でコードが吐かれる。俺はRailsわからんので此処から先はRails詳しい人お願い
node.jsってJavascript知らないと使えないの?
そりゃまあ
あんまりガチガチじゃない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だけど、こういうのってニーズあるのかな?
・決めたwebappディレクトリをルートとしたリソース管理 ってなんぞ?
サーブレットでいう、WEB-INFディレクトリのようなもの。 特定のディレクトリ以下をWEBアプリのディレクトリとして、 そのディレクトリ以下のリソースを自動的に読みなおしたりキャッシュしたり、 パスの解決もそのディレクトリからの相対パスとなる感じ。 node-devだと監視対象になるし、アプリ全体が再起動しちゃうんだけど、 どっちかというと、本番稼動時にコントローラをホットスワップするためのもの。 サブディレクトリ足して、コントローラ置いて、アプリの設定にするというのもOK。 、、、という感じです。 ディレクトリを固定するのは、アプリ内でのパスの単純化と、 監視コストの削減ってところですかね。
>>604 ないから作るかなw
ソースもDropbox上のSVNリポジトリに置いてるだけだし、
alpha版出来たらGithubとnpmにあげるかな。。
最初からgithubで開発すりゃいいのに
>>605 むしろgithubをNodeで作ってくれw
恥ずかしいソースを晒したくない
オープンソースは自分のケツ穴を衆目に晒すようなもんだ。 よっぽど美しいケツ穴かナルシストでなければ自信なんて持てるはずがない。
∧∧ (д`* ) (⊃⌒*⌒⊂) /__ノωヽ__)
>>596 Socket.IOのバージョンを 0.9.1-1 にアップデートしたらFirefoxでも動作しました。
お騒がせしました。
Node.jsやるんだったらGithubは必須というのは重々に承知してる。 でもSVNになれると、なかなか馴染めないんだよね。 前はGoogleCodeでソース管理してたんだけど、 リポジトリの同期が遅いし公開が目的ではないので、 DropboxとSVNの方が速いし気軽だね。 でも完全にGithubに移行しようかな。
>>609 それは違うと思うな
ブサイクなアイドルなりたてが美人なアイドルになる過程の方が似てる
色な人に見られる事を意識し使われればより良いコードになっていく
それがまた自分の糧にもなる
で、美人アイドルのケツ穴はどこですか?
ソースコードはドキュメントでもあると意識すれば、 必然的にキレイで恥ずかしくないコードになるよ。
ブラウザ多重起動で多重の接続になるのを制限するにはどうすればいいのかな ログイン機能とかは作ってあるから、接続したログインIDすべてを配列とかで保持しておいて比較でいいのかな もっと頭のいい方法あれば知恵が欲しいです
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だったよ。
JsDocの不満としては、 ・コールバック関数の引数の仕様が定義できない ・__defineGetter__/__defineSetter__をサポートしてない ・コメントの1行目がサマリーに、2行目以降の文章が詳細にということができない ってところ。IssueTrackerには上がってるようなので、今のところ我慢。
node.dartとか試した人居る?
>>619 これは痛いなww
>JavaScriptのプログラミング言語としての限界が影響する。つまり、オブジェクト指向が不完全であること
そもそもオブジェクト指向が最強だと言う前提になってるし
突っ込みどころが多過ぎでヤバイw
1年前の記事をそう何度も蒸し返してやるなよww かわいそうだろwww
node.jsでググると、今でも上位にくるんだぜwww
オブジェクト指向が完全じゃない、ってのは前スレにあったスコープの話なのかね ……そういうわけじゃないだろうなあ たぶん、クラス指向じゃなきゃ完全なオブジェクト指向じゃない、とか思ってたんだろうな
Nihongo de ok
Roumaji de NG
>>625 未だにJavaScriptはオブジェクト指向プログラミングができないって思ってる人は多いと聞く
まぁ、徐々に広まるんじゃないかな
JavaScriptは本当のオブジェクト志向じゃないとか言ってる人って、 大抵JavaとかC++と比べてるけどさぁ、批判するならホンモノのSmalltalkと比べろよと思う。 まぁ、浅知恵で批判する人って、その辺よく知らないと思うけど。
631 :
忍法帖【Lv=4,xxxP】 :2012/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最新版です
context引数が必要
633 :
忍法帖【Lv=4,xxxP】 :2012/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(); とやっても同じエラーが出てきます・・・・
jsdom/browser/index.jsの該当する行を見たら?
635 :
デフォルトの名無しさん :2012/03/19(月) 21:33:23.12
やっぱりソースを調べていかなきゃいけないかな?(^_^;) 他人のコードの解読って疲れるけどな 他に僕と同じようなエラーが出た人はいませんか? ググってもあんまり出てこないし…
var jsdom = require('jsdom');
var document = jsdom.jsdom('<html><body></body></html>');
var window = document.createWindow();
var jquery = '
http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js ';
jsdom.jQueryify(window, jquery, function(window, $) {
$('body').append('<div>Hello Jsdom!</div>');
console.log($('div').html());
});
$ node hellojsdom.js
Hello Jsdom!
普通にできた
emitで呼び出す関数の引数が多くなるときってどうすれば綺麗になる? 多言語みたいに構造体で渡したりは出来ない・・・のかな?
638 :
デフォルトの名無しさん :2012/03/19(月) 22:53:38.74
>>636 使っているversionを教えてください
>>638 node v0.6.12
jsdom 1.1.4
ubuntu-ja-10.10-desktop-i386
640 :
デフォルトの名無しさん :2012/03/19(月) 23:15:17.49
んん〜〜 とりあえずnodeのバージョン下げてみるか それでできないならmacの問題か・・・?
まだAPIも安定してないし、プラットフォームでの相違も大きいよ。 なので、コードを解析してバグを回避する、 というような書き方が出来ないと、 正直使いこなすのは難しいかもしれない。 まだ枯れてないから仕方が無いよね。
普通に安定版を使えってだけの話だと思うが
安定版が安定してたらいいんだけど。 0.8になるとまたAPI変わるし、ちょっと設計が雑だと思う。
jsdomはバグ多いんだよなぁ・・・
【nude.js】に見えた
macでもjsdomで
>>636 動いたよ。
nodeは0.6.13と0.7.6
jsdom 0.2.13
OS X 10.7.3
648 :
601 :2012/03/20(火) 18:38:08.82
コア機能だけは出来たけど、テストとかドキュメントとか面倒いww JSDocでAPIドキュメントを書いてるんだけど、 一部JSDocの都合に合わせた書き方にコードを直すのがツライところです。 来月の中旬にはGitHubでβ版公開出来るかも。
649 :
585 :2012/03/22(木) 18:25:48.72
apache 上で動く cakephp と、node.js 上で動く sokcet.io でそれぞれセッションの共有化ってできますか? apache 上の PHPで websocket を動かすとかではなく、チャットなのでnode.jsでできればと思っています。
node.jsって結局何なのってずっと思ってたんだけど、上の方のやり取り見てやっと腑に落ちた。 Webサーバだとばっかり思ってたから違和感すごかったんだ 勉強になるやり取りだった。ありがとー
node.jsってPATHやHOMEとか環境変数はどうやって取得すればいいの?
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 :
デフォルトの名無しさん :2012/03/24(土) 22:37:05.35
素直に locals: { fuga: 'test' } じゃ駄目なの?
無理やと思うけどな 何がしたいかわからんけどこれじゃダメ? var hoge = "fuga"; res.render(id, { locals: { a[hoge]:"test" } }); }); a["fuga"] ==> "test"
var fs = require('fs'); fs.__proto__ = require('path'); とやっておくと、色々と捗る。 fs.existsとかが0.7でも0.6でもいける。
fs.watchってディレクトリをロックするのかよ。 使いにく過ぎる。。。
659 :
デフォルトの名無しさん :2012/03/25(日) 14:23:24.05
現在のOSの言語設定を取得する仕組みないですか?
locale
ありがとうございました。 ちゃんと、C言語って返ってきました。 LinxuってC言語で作られてるんですね。
propertiesファイルのパーサ作ったんだが、 require.extensionsに登録しておくと、 requireだけでpropertiesファイルの読み込みが出来て、 捗り過ぎwwwワロタwww
node.jsの勉強がてら掲示板を作ってるんだけど、 こんな機能があったらいいな と思う機能ってなにかありますか?
未来の輝いてる俺の記録が既に書かれている
npmでインストールできる掲示板とか。
みんなサニタイズはどうやってる? 自前で実装してる?
静的ファイルを返す簡易httpを実装した時は、 ディレクトリトラバーサルをチェックして、 リクエストパスを書き換えたりした。
>>668 サニタイズ言うな。
エスケープだろ。
正しくエスケープすれば
すべての文字は扱える。
>>663 とりあえず2ch風のでも作って見て それから考えたら?
そんなことはない
>>666 >>667 >>672 参考になる意見をありがとうございます。
672の言う通り、まずは2ch風のでも作ってみようと思います。
1週間ほどでできると思いますので、
そのときにはまたご意見のほど、よろしくお願いします。
高坂王子は無視かよっ
ペニサイズなら使ってもいいッ!
名前を予約しておきたかったので、 hello world的なやつをnpmに登録した。 今では反省している。。。
こうしてまたゴミファイルがnpmに登録されるのであった
Cometにnode.jsって相性がいいってよく聞くけど、実装しているのを見たことがない
フィボナッチが遅いから仕方が無いんじゃねw
>>679 socket.ioにcomet実装されてる
jsでのフィボナッチは実装の仕方によっては爆速だったはずだが
リクエストがスレッドやプロセスにバインドされるモデルには、Cometは向かないだろうね。 レスポンスを保留するのにどれ位のサーバ資源を消費したままになるか。これが向き不向き違いだろうね。 最近のサーブレット触ってないけど、APIレベルで非同期処理に対応したよね。速いのだろうか。
うーん、、、githubとかmarkdownとかnpmとかmakefileとか難しい。
>>681 使ってるサービスある?WebSocketは見るけど…
Sessionの実装難しいなぁ。
>>685 WebSocketの動かないIEなんかでもsocket.ioが動くから
その中で使ってるんじゃないの?
socket.ioってWebSocketだけじゃなく、 かなり泥臭いところまでフォールバックするみたいだね。 iframeを使った通信までやってくれるらしい。
cometってコネクション張りっぱなしというのにすごい抵抗があるんだけど考え方古い?
cometはブラウザによってはアイコンが回ったままになるのが好かない
mojitoってのがYahooから出たね。 Tower.jsのライバルっぽい感じかな。 後でソース見てみる。誰か試した?
mojotoってExpressとConnect使ってるのか。 クライアントと同一コードが動くといっても、 Yahooのライブラリだしねえって感じ。jQuery使いたいだろjk。 クライアントとサーバで同じコードを動かすメリットがイマイチわからない。 経験上、ドメインの違いを無理矢理埋めると、 大抵どっちも微妙な感じになる気がする。
下のコードで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); }); }); }
ナターシャ
スジャータ
698 :
デフォルトの名無しさん :2012/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 :2012/04/23(月) 00:53:17.10
近況:0.7.4は動いた、バージョンに対応してないとか、そういう問題?
700 :
698 :2012/04/23(月) 01:09:28.75
近況:やっぱり動いてなかった
701 :
698 :2012/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で動いてる方とかおられますか?
node.jsって次世代技術として追う価値ある?
nodeよりjsをだな
技術的にはぜんぜん次世代じゃないよね。安いJSプログラマを使えるというのが魅力なだけで。
安いJSプログラマはJSプログラマじゃなくてjQueryプログラマだろ
もしくはなんちゃってjsプログラマ
なんちゃってとそうでないjsブログラマの違いをおせーて
JS理解してます^^ って人の7割ぐらいは理解してないんだよなぁ 先に上がってるjQueryの件もそうだし グローバル汚染しまくる奴もどうかと思うし
しょせんはプレゼンテーション層の効率が良くなるとかそういう次元の言語技術だからな 本質的に何か生み出してる訳じゃない
V8のスレじゃないんだからせめてイベント駆動IOの文脈で語ってやれよw イベント駆動IOも次世代ではないけどさ
あん
ぱん
nodeよりnude.jsのが衝撃を受けた
714 :
デフォルトの名無しさん :2012/04/30(月) 12:07:08.87
node.exe 0.6.16 (x64) + express + socket.io で,
http://socket.io/#how-to-use のサンプルを動かしてみたんだけど
Firefox だと WebSocket でちゃんと動くんだけど
IE9 だと Ajax になってしまって,しかも timeout になっちゃうんだよね
IE9 って WebSocket 対応してなかったっけ?
716 :
714 :2012/04/30(月) 18:38:24.07
つい軽く訊いてしまったw これ解りやすいサイトですね dd node.exe 0.7.5 (x64) + socket.io のときは普通に通信できたんだけどなぁ なんで繋がらないんだろ
5年ほど前は、シュワルツ変換しろよ(ぷ とか言ってた時代なのに、今ではjavascriptがスクリプト界のラクダ的な立ち位置
socket.ioはスタンドアローンで鯖立てられるようになったけど expressを同居させるメリットってなんだ? おしえてくらはい
719 :
デフォルトの名無しさん :2012/05/08(火) 01:53:06.29
meteor.jsなんだこれ。 MVCとかRESTとかajaxとかsocket.ioとか、何すかそれ?って感じ。 サーバとクライアントのデータのやり取りが簡単すぎる。 めちゃめちゃ面白い。
720 :
デフォルトの名無しさん :2012/05/08(火) 23:13:53.37
俺、週末になったらmeteor.jsで遊ぶんだ win版もあれば会社でも遊べるのに……
サーバ持ってないし 準備する時間もない
>>723 お前には一生無理だから諦めた方がいいよ
謎の煽り
>>719 あれメンテしきれるのかねぇ。どっかのVCからお金引っ張れたらいいんだけど。
ってもうVC使うような風潮でもないのかな
node.jsって最近囃し立てられなくなったけどステマする必要がないくらいに浸透したから? node.jsが使われているメジャーなウェブサービスを教えてくださいたくさん
CoffeeScriptを使ってみたくてさっき入れたけど、 Chromeのuser.js作成には使いにくいのではないかと今気づいた さてどうしよう
>>727 一番大規模なのはやっぱピグライフじゃないんかなー
BrowserQuestは結構規模大きいんじゃないかな?
>ピグライフ ありがとう 時間とともに状態が変化していくから向いている とかですか?とくにそういうことは関係なく?
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 :2012/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
[email protected] info using
[email protected] 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! <
http://github.com/isaacs/npm/issues >
ERR! or email it to:
ERR! <
[email protected] >
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 ]
>>734 一番大事なところ書けよ
それじゃわかんないだろ
737 :
デフォルトの名無しさん :2012/05/25(金) 16:32:32.99
お前ら何見て勉強したらnode使いこなせるんだよ 本もネットも参考になるのあんまりないじゃんか
馬鹿には無理
Ruby好きの俺がnodeで遊べるのはcoffeescriptとsugarのおかげ
イミフ
node使わなくて良いぞ
Ruby/Railsの開発者が作ったんだっけ。
*ばっかじゃなくて(i)を書けってことだよ 言わせんなよ恥ずかしい
童貞乙
node.jsより数倍速いらしいvert.xを使ってみたんだが、自前でベンチマーク取ってみたらnode.jsよりもかなり遅かった。 処理によって向き不向きがあるのかな。
あー、やっぱ遅いのかー 残念 とはいえ例のベンチが怪しすぎて最初から期待はしてなかったんだけどね…
749 :
734 :2012/05/28(月) 19:33:17.03
nodejitsu のアカウント、アクティベイトするのに3日かかった
sudo node sudo node-dev 何でコレが出来ないのん?(´・ω・`) 80番ポート使いたいのに
\Kや(?<=なんかの戻り読みに対応した正規表現ライブラリはありますか?
だからこそ別言語で書かれたライブラリを探しておるのじゃよ
Rhinoって10年以上前からあるけど実際、業務で使った事ある香具師とかいるの? Rhino系なら業務で使った事あるけど、経歴書見せる度に相手の反応が分かり易くて面白い 相手が意欲的な技術者だと「Rhino経験とかwwwスゲーww」 最近の技術者「Node.jsですか?」 相手が無能、営業とか「SSJSって?」
> 相手が意欲的な技術者だと「Rhino経験とかwwwスゲーww」 こいつの反応が一番駄目だろ、スゲーって意味が分からない あぁ、馬鹿にして鼻で笑ってる感じなのか それなら納得だわ
>>758 いや、マイナーな事やってるなぁって意味なんだけど
馬鹿
761 :
デフォルトの名無しさん :2012/06/02(土) 00:09:45.93
dbからとってきた64ビットってどうやってあつかってます?
762 :
デフォルトの名無しさん :2012/06/08(金) 23:49:42.25
だれもまともに使ってないみたいだな
>>762 何を持ってまともなのか?
お前はあともに使いこなせてるの?
だれも、って書いてあるから、つまりそういうことなんだろう
AndroidアプリからSocket.ioって利用出来ないかな
766 :
デフォルトの名無しさん :2012/06/10(日) 13:12:30.50
767 :
デフォルトの名無しさん :2012/06/10(日) 13:46:00.05
phpで組む方がやっぱいいな
Android4.0ならいけっかな? まぁ現状でも色々socket.io内で手段あるから使えそうな気がするけど
769 :
デフォルトの名無しさん :2012/06/10(日) 19:19:13.05
TiTwitter.searchApi = function(searchWord) {
var url = '
http://XXXXXXXXXXXXXXX ';
var queryString = searchWord;
// データをクリア
TiTwitter.UI.tableView.data = [];
TiTwitter.callAPI('GET', url, {q: queryString,lang:'ja',locale:'ja'}, function(status, responseText) { ←非同期のコールバック
// 受け取ったJSONデータをパース
var json = JSON.parse(responseText);
for(var i = 0; i < json.results.length; i++) {
TiTwitter.loadUserTimeline(json.results[i]); ←もっかい非同期処理で値取得
}
});
};
これを同期的(順次処理)に動かすことって可能ですかね?
770 :
デフォルトの名無しさん :2012/06/10(日) 19:44:39.58
ロックすれば?って思ったんだけど うちのnodejsはビジーウェイトさせたら不健康そう
forせず最初の要素のloadUserTimelineして そのloadUserTimelineのコールバックで次のloadUserTimelineしたら?
772 :
デフォルトの名無しさん :2012/06/12(火) 00:59:21.77
コールバック地獄
773 :
デフォルトの名無しさん :2012/06/13(水) 09:17:49.93
>>768 ロードバランサでうまく動かなくなるからsocket.ioは使わないほうがいい
774 :
デフォルトの名無しさん :2012/06/14(木) 23:05:34.45
まだ本格的に使ってるところ無さそうね
775 :
デフォルトの名無しさん :2012/06/14(木) 23:19:33.22
チャットで同時に接続してるひとに配信するにはどうやればいい? 30000人ほど同時にきます 全員に配信すると少し止まります 最初は部屋を分割しようとしたのですが仕様的に無理そうです ロムがほとんどで書き込みは100人ほどです
馬鹿には無理
flash cometだっけ
779 :
デフォルトの名無しさん :2012/06/18(月) 11:19:10.70
ほとんどつかってなくね?
websocketの用途はチャットとか通知(リアルタイム)とかだからなぁ 適用範囲は限られてるからこんなもんじゃね? 実際に運用してみた人の感想が聞きたいわ セキュリティ・ファイアーウォール問題とか色々トラブルあったと思うんだ
781 :
デフォルトの名無しさん :2012/06/18(月) 13:43:20.14
>>780 日本で使ってる人がいないんだから
答えようがなくね?
782 :
デフォルトの名無しさん :2012/06/19(火) 08:58:41.95
C:\Users\ユーザー名\AppData\Roaming\npm\;C:\Program Files\nodejs\
がパスの最後に登録されるんだけど
monodevelopとかgtk#とかpythonとかOpaとか何かほかの環境入れてると
それと干渉してパスがみえなくなるみたいね
PATHの先頭に切り取り貼り付けで移動したら見えるようになったし
http://blog.nodejs.org/2012/06/19/version-0-7-12/ PS: 公式から行くと32bit互換で動く版しか落とせないので
ブログ経由で64bit版入れて試してみた
786 :
デフォルトの名無しさん :2012/06/21(木) 09:43:07.23
787 :
デフォルトの名無しさん :2012/06/21(木) 09:44:30.46
64bit整数使わないし4g以上メモリつかう機会ないし
788 :
デフォルトの名無しさん :2012/06/21(木) 16:58:29.28
phpでよくね?
初歩的な質問かもしれませんがNode.jsがインストールできません。どうすれば解決するのでしょうか? インストーラーでは Node was installed at /usr/local/bin/node npm was installed at /usr/local/bin/npm Make sure that /usr/local/bin is in your $PATH. と表示され、ターミナルで $node -vを入力してもcommand not foundになってしまいます。 どなたかご教示して頂けないでしょうか。
>>789 とりあえず,英語を勉強してみるといいと思う
>>789 >>790 のおっしゃる通りだけど、$PATH に /usr/local/bin が入っとるか確認してね ってご教示されてるよ
793 :
デフォルトの名無しさん :2012/06/25(月) 22:51:09.49
0.8って安定版?
794 :
デフォルトの名無しさん :2012/06/25(月) 23:09:58.62
socket.ioをwebにあるようなサンプルレベルのソースで試しているんですが、うまく動作せず。
しばらくあれこれ試しているんですが、解決の糸口が見当たりません。ご教授いただけないでしょうか。
◇主な環境centOS 5.8 node.js v0.6.19
[email protected] ◇ファイル配置:Appicationディレクトリ配下
index.html //アプリケーションのベースhtml app.css //css
app.js //クライアント側JSファイル web_srv.js //webサーバ
socketio_srv.js //websocketサーバ
socket.io.js // ~/node_module/socket.io/lib/soket.io.js からコピーして配置
各ファイルソース(抜粋 *印は前後の省略を表す)
◇index.html
*
<script type="text/javascript" src="./socket.io.js"></script>
<script type="text/javascript" src="./app.js"></script>
*
◇web_srv.js
var connect = require('connect');
connect(connect.static(__dirname)).listen(8081);
◇socketio_srv.js
var io = require('socket.io').listen(3000);
io.sockets.on('connection', function(socket) {
*
◇app.js
window.addEventListener('load', function() {
var socket = io.connect('XX.XX.XX.XX:3000');
var canvas = document.getElementById('pallet');
*
◇chrome のデベロッパーツールの実行結果
(web_srv.js, socketio_srv.js をnodeコマンドで実行後、ブラウザからindex.htmlへアクセス)
Uncaught ReferenceError: require is not defined : socket.io.js:12
Uncaught ReferenceError: io is not defined : app.js : 2
795 :
デフォルトの名無しさん :2012/06/25(月) 23:47:47.39
796 :
デフォルトの名無しさん :2012/06/25(月) 23:52:39.77
釣りだとおもったが釣られてみた
797 :
794 :2012/06/26(火) 00:03:42.65
>>795 websocket.io.jsは
~/node_modules/websocket.io/lib/websocket.io.js
index.htmlは
~/public/Applicationname/index.html
に配置されているんですが、index.htmlにはどう記述するのが正しいのでしょうか。
ググると
<script type="text/javascript" src="/websocket.io/socket.io.js"></script>
に、というコメントを見かけはするんですが、このパスは参照できない(存在しない)のでは…、と。
800 :
デフォルトの名無しさん :2012/06/27(水) 22:09:25.53
0.6と0.8って何が違うの?
ほくろが違う
ごめんね
804 :
デフォルトの名無しさん :2012/06/29(金) 09:18:08.51
>>803 どもです
12月ごろに0.6->0.8切り替えればいいのかな
サーバーサイド固有の話でもないんだけど、 Javascriptの処理系って、こういうprototypeを使わない スタイル使ったら平均的にどんだけパフォーマンス落ちるもんなの? prototype使わないと致命的ってな自体もめずらしいと思うんだけど。 function Base() { this.Member = function(){ WScript.echo( "base" ); } } function Delived() { this._BaseType = Base; this._BaseType(); } new Delived().Member();
パフォーマンスよりメモリ消費増加じゃないかな多分 バインディングに関しては 本体(o)→o.prototype(o2)→o2.prototypeって辿らない分 むしろ早くなりそうだし
meteor使っている人いる?
809 :
デフォルトの名無しさん :2012/07/02(月) 09:35:36.19
>>808 業務で使うには無理
クライアントからチートしほうだい
810 :
デフォルトの名無しさん :2012/07/02(月) 09:47:45.46
>>806 致命的じゃないけどメモリ喰いやがってとディスられる
811 :
デフォルトの名無しさん :2012/07/02(月) 09:53:09.15
>>809 クライアントからのアクセスに、サーバ側で制限がかけられないってこと?
>>809 オープンソースなんだから、業務で使おうと思ったらコミュニティに参加して、
セキュリティホールの修正などに貢献すれば良いよ。
良いオープンソース系の会社ならそうする。
普通ならもっと筋の良いフレームワーク使うかもしらんけどw
813 :
デフォルトの名無しさん :2012/07/02(月) 23:07:20.81
個人でiphoneアプリ、Windowsアプリをマーケットに売って生き残れ
格安iPhoneEラーニング(学習動画多数あり)
http://tinyurl. com/7wj77om
コワーキングスペースJP
http://tinyurl. com/76vdrny
コワーキング帳
http://tinyurl. com/brzs486
WEBサーバーIIS Win2008ServerVPS SqlServer Oracle MySql 言語はマーケットで売れるメーカー製のみやる
ASP.net(C#)+管理EXEアプリ(C#)+iPhone C#のソースを出さなければWEBアプリの著作権も守れる
C#マーケット Windows8 Metroアプリ WindowsPhone Surface PS Vita Xbox360 iphone(mono使用)
iPhoneマーケット iPhone iPad 予定 iTv iCar i (家電製品)
地方に安い土地を買いコンテナ型の格安高性能オフィスを建て(300万〜500万)
レンタル自習室&シェアオフィス・コワーキングで収入を得ながらそこでアプリを開発する
http://tinyurl. com/7pb2yaa
http://bit. ly/iLIpJa
816 :
デフォルトの名無しさん :2012/07/04(水) 21:03:43.40
すばらしいので age
C#は素晴らしい言語だし俺もよく使うがサーバサイドでC#云々っていうのはちょっとねぇ… というか、構文チェックだのリファクタだの関数ジャンプだのってこういうのはVimなりEmacsなりを使ってればどうとでもなるよね もっとぶっちゃけると一々ビルドだのデプロイだのに時間かかって逆に開発効率が落ちるような… 後、保守に関して言語云々と言ってるのがよくわからん
無知なのに馬鹿な口が動くのは偏差値の高いやつの悪い癖だ
まあ2chでこれ言っても仕方がないけど、職場で影が薄いモジモジ系の奴とか いかにもうだつが上がらない奴が自分の実存を棚に上げて評論家面していっぱしの口を利いて 水に落ちた犬を叩くのは、本人気が付いてないだろうけどみっともないというより滑稽だよな。 一生懸命何かを語っているつもりでむしろ自分自身を語ってることに気が付いてない頭の悪さ。
オマエモナー
これを使ってる層はやっぱりvimやemacsを使ってる人が殆どなの? 俺みたいなメモ帳レベルはキワモノなん?
というかメモ帳はム板全体で見てもレアだろ
UTF-8で保存できるの?皆無だと思うわ。
メモ超でCP932で保存したのをUTF-8にコンバートするプログラムを最初に書けば良い
BOMとかサロゲートペアとか最初に言い出したのは誰なのかしら
行末に^M入れる奴は無論殴りに往きたいね
自動認識も出来ないエディタはNG
つまり shebang は NG と
shebangはエディタだったのか
832 :
デフォルトの名無しさん :2012/07/09(月) 22:29:44.86
コード補完してくれるエディターってありますか?
833 :
デフォルトの名無しさん :2012/07/10(火) 22:33:25.97
無さそうか
vimとかemacsとか色々あるじゃん
webmatrix2とかWebStormおすすめ
836 :
デフォルトの名無しさん :2012/07/10(火) 23:23:30.76
vimってprocess. と打ったらexitとか候補だすことができるんですか!?
837 :
デフォルトの名無しさん :2012/07/11(水) 15:15:24.38
すいません、node詳しい方ってどうやって勉強したのか教えていただきたいです
>>838 やっぱり公式とグーグル先生ですよねorz
本がないのは辛いなぁ
>>840 わざわざリンクまでありがとうございます
でも英語がよm(ry
先生と公式でがんばってみますw
842 :
デフォルトの名無しさん :2012/07/11(水) 23:06:23.31
843 :
デフォルトの名無しさん :2012/07/11(水) 23:09:12.39
日本だと本でるまえにバージョン上がっちゃう
つーか世界で初のnode本が間もなく出そうです
という話しが立ち上がってから半年以上経つがどうなってんのかね。
JPのグループにも参加してるが聞くに聞けないわ
>>837 node内部のjsソースがあるから
それらを読むのもありだと思う
846 :
デフォルトの名無しさん :2012/07/12(木) 22:27:58.96
>>837 もともと非同期のプログラム知ってるからjs覚えれば使える
847 :
デフォルトの名無しさん :2012/07/12(木) 22:50:22.98
ゲームのプログラム組んだことあるひとなら簡単でしょ
>>836 JavaScriptのはあるけど、node.js のオムニ補完はないっぽいね。
フレームワークって何使ってる?
850 :
デフォルトの名無しさん :2012/07/16(月) 13:19:08.19
Yahooのトップページを取得するににはどうすればいいですか?
>>851 ありがとう。
Express使い始めたんだけど、ちょこちょこ気になるところがあって、他にいくつかFWあるけど、何を使ってるか知りたかったんだ。
ExpressってまだFWとして完成度低いと思うんだけど、何故使ってるのか、良かったら教えてくれませんか?
853 :
デフォルトの名無しさん :2012/07/17(火) 08:45:04.64
フレームワークは使うなと高校生がおっしゃてる
854 :
デフォルトの名無しさん :2012/07/17(火) 22:40:04.23
>>850 http.request とjquery
855 :
デフォルトの名無しさん :2012/07/17(火) 22:48:44.08
ハスケルのほうがスレ延びてるところ見ると時期メジャー言語はハスケルなんかな
jQueryはサーバサイドだとオーバーヘッドが気になるんだよね…v8以外のコードが入ってるし
857 :
デフォルトの名無しさん :2012/07/18(水) 21:18:13.21
>>856 スクレイピングするならサーバーではないのだから気にするな
色々とツッコミどころ満載なレスだな
質問させていただきます。 どなたかsocket.ioをflash(AS3)のflash.net.Socketで利用している方はいらっしゃいますか? socket.ioのサイトにはAdobe Flash Socketをサポートしていると書かれていますが正常に動作しません。 ソースは以下の様なものです。 flash側では接続に成功したメッセージは表示されますが socket.io側ではメッセージは表示されません。 ■socket.io側 var io = require('socket.io').listen(8001); io.configure(function(){ io.set('transports', ['websocket', 'flashsocket']); }); io.sockets.on('connection', function(socket) { console.log('connection'); }); ■flash側 Security.loadPolicyFile("xmlsocket://example.com:10843"); var s:Socket = new Socket(); s.addEventListener(Event.CONNECT, function(e:Event):void { trace('connect'); }); s.connect('example.com', 8001); ちなみにsocket.ioを使用せずにnode.jsのnetライブラリを使用すると node.jsとflashで問題なく通信が出来ました。 以上よろしくお願いします。
860 :
デフォルトの名無しさん :2012/07/20(金) 00:42:29.41
通信対象がブラウザでないならsocket.ioは使わないほうがいい
ソースは?
862 :
デフォルトの名無しさん :2012/07/20(金) 09:17:43.08
トンカツ
863 :
859 :2012/07/20(金) 10:20:31.47
レスありがとうございます。
>>860 そうなんですね。
スマートフォンとPC(Flash)をソケットサーバを通して
連携させたかったのでsocket.ioで一括管理しようと考えてました。
FlashからローカルサイドJSを経由してsocket.ioを利用するか
netライブラリでサーバを作成しようかと思います。
>>861 仕事に近いプロジェクトなので
完全なソースの公開は難しいです。
すいません。
いや、
>>861 の言ってるのはそのソースじゃないと思うぞ……
865 :
デフォルトの名無しさん :2012/07/20(金) 19:31:49.57
>>863 スマフォとかフラッシュとか自分でプロトコル実装できるなら
単なるwebsocket でいいのでは?
socket.io 使うとロードバランサ使えなくなるから仕事で使うとキツいよ
どうしてもつかいたいならengine.io が完成するまで待つしかないかな
867 :
デフォルトの名無しさん :2012/07/20(金) 22:55:38.09
868 :
デフォルトの名無しさん :2012/07/20(金) 23:18:23.30
foreverって0.6.20で動かなくなった?
869 :
859 :2012/07/23(月) 23:05:45.38
>>865 Flashはwebsocketに対応していないので
今回はパフォーマンスは落ちると思いますが
FlashとローカルJSを通信する方法にしました。
engine.ioというのもあるんですね。調べてみます。
nodeの未来はあるか
871 :
デフォルトの名無しさん :2012/07/24(火) 22:57:01.38
872 :
デフォルトの名無しさん :2012/07/24(火) 23:05:15.01
まちがえた 870
873 :
デフォルトの名無しさん :2012/07/26(木) 09:03:17.14
flash 用のwebsocket あるぞ
874 :
デフォルトの名無しさん :2012/07/27(金) 04:23:11.99
ウェブ開発初心者です。 最近ウェブ開発の勉強を始めてnode.jsとsocket.ioをみつけて 一週間程度突貫工事でチャットサービスをつくってみたんですが これって公開するにはどうしたいいんでしょうか? 安価なレンタルサーバはサーバサイドjsなどが使えないと聞くのですが 自前のサーバを用意するしかないのでしょうか。 皆さんはこういったウェブアプリをどうやって公開してるんですか?
877 :
デフォルトの名無しさん :2012/07/27(金) 12:55:58.31
クラウドサービス使わないと node.js 使う意味もないだろう 無駄に自前サーバいっぱいい立てるより、資源を共有して自動配分 環境にもやさしい
そんなことないだろ。 内容と負荷、力量次第。 この場合はどちらでも良いが、書き込みからするとすぐにデプロイできる方が良さそうだね。
なぜherokuを使わない
881 :
デフォルトの名無しさん :2012/07/27(金) 21:43:26.54
874質問者です。
なるほど、PaaSを利用するという手があるのですね。
今作っているのは個人的に欲しい機能をつけたチャットサービスで、
デバッグなどもかねてまずは仲間内で使ってみたいと思いまして。
PaaSなんかは完成したプロダクトをデプロイするイメージでした。
>>879 なにぶん実用的なウェブアプリを開発するのがはじめてで
無知ゆえ前も後ろも分からない状態です。。
882 :
874 :2012/07/28(土) 00:56:01.66
日本語につられてnode ninjaへ…
>>882 こんなんあるんや。しかし、右下の「first Server」が気になるのは俺だけか…趣味ならいいか
事故直後はむしろ安全(キリッ)
Meteor,mojito,expressと増えてるけど、meteorで良いよね? 畳とwebフレームワークは新しい方が良いってバッチャが言ってた
タワーは?
887 :
デフォルトの名無しさん :2012/07/29(日) 12:54:58.34
888 :
デフォルトの名無しさん :2012/07/29(日) 15:03:19.46
>>885 フレームワークは使うなと高校生がいってる
オプソの屑みたいなフレームワークしか使ったことないやつはそう言う
890 :
デフォルトの名無しさん :2012/07/30(月) 20:23:49.62
Meteorが、$11.2M調達とはびっくらした
js+html5が金の卵だと思っている連中は沢山いるんだろうな rhinoでwekaやhadoopを使ってデータマイニングも金の匂いがする
893 :
デフォルトの名無しさん :2012/08/01(水) 01:44:43.57
ruby、Pythonなら初心者でも一瞬で作れるのに JavaScriptでスクレイピングツールの作り辛さについて突っ込んだらこれだよ 232 :デフォルトの名無しさん:2012/08/01(水) 00:25:02.04 みんなが使ってないから使えない初心者いるな 234 :デフォルトの名無しさん:2012/08/01(水) 00:27:34.46 いるんだよなー 誰かがレールを引かないと先に進めない初心者がな 235 :デフォルトの名無しさん:2012/08/01(水) 00:31:04.04 誰か作ったのパクらないとなにも出来ない初心者いるね
894 :
デフォルトの名無しさん :2012/08/01(水) 02:37:37.70
ruby、Pythonなら初心者でも一瞬で作れるのに JavaScriptでスクレイピングツールの作り辛さについて突っ込んだらこれだよ 232 :デフォルトの名無しさん:2012/08/01(水) 00:25:02.04 みんなが使ってないから使えない初心者いるな 234 :デフォルトの名無しさん:2012/08/01(水) 00:27:34.46 いるんだよなー 誰かがレールを引かないと先に進めない初心者がな 235 :デフォルトの名無しさん:2012/08/01(水) 00:31:04.04 誰か作ったのパクらないとなにも出来ない初心者いるね
phpqueryでおk
896 :
デフォルトの名無しさん :2012/08/02(木) 00:52:20.81
JavaScriptで作りにくくなる原因がないな。単に習熟度が低いだけだろう。
regex使った文字列処理ならPerl以外は手間変わらんし dom操作ならjs一強だし ソケット関連はみんなライブラリ使うだろうし 何が面倒だと言ってるんだろう
898 :
デフォルトの名無しさん :2012/08/02(木) 22:07:19.44
rubyってどうなりそう?
他言語のことはどうでもいいよ、そういうのはバトロワスレで話す内容でしょ
あげ
901 :
デフォルトの名無しさん :2012/08/12(日) 14:36:04.54
jsは終了
ということにしたいのですね ヘミヘミ
904 :
デフォルトの名無しさん :2012/08/15(水) 12:33:25.19
>>903 voidを知らぬとは闇の力の使い方も知らぬうつけもの
905 :
デフォルトの名無しさん :2012/08/15(水) 12:35:01.01
void walkerを使いこなさずして光の勢力に何で対抗する
907 :
デフォルトの名無しさん :2012/08/15(水) 14:33:47.18
void main(笑){ }
908 :
デフォルトの名無しさん :2012/08/16(木) 13:49:05.39
voidこそ力 void*さえあればなんでもできる
ヘ ヘ ミ ミ
ヘ_ヘ ミ・・ ミ ( )〜
ヘ_ヘ ミ ・ ・ ミ ( )〜
ヘ_ヘ ミ ・ ・ ミ ( )〜
ヘ_ヘ ミ ・・ ミ ( )〜
915 :
デフォルトの名無しさん :2012/08/19(日) 14:42:23.61
>>914 フレームワークを使うなと高校生はおっしゃっている
916 :
デフォルトの名無しさん :2012/08/22(水) 03:08:44.66
>>914 非同期モデルはfiber+taskでほぼまかなえるだろ
最近だとモナド使うのがいいみたいだけどな
917 :
デフォルトの名無しさん :2012/08/22(水) 03:10:04.83
しかし誰も使いこなせないみたいだな
918 :
デフォルトの名無しさん :2012/08/23(木) 00:20:57.31
一人1Mのメモリ使うとして 100000人同時に接続したら100g必要?
作り方次第としか言い様がない
920 :
デフォルトの名無しさん :2012/08/24(金) 00:41:59.43
文字コードの変換のところで「Error: EILSEQ, Illegal character sequence.」エラーが出ます。
どうすれば解消できますか?
var request = require('request');
var Iconv = require('iconv-jp').Iconv;
var conv = new Iconv('shift_jis', 'utf-8');
request('
http://www.google.co.jp/ ', fucntion(error, response, body) {
body = conv.convert(body);
console.log(body);
});
範囲外の文字が入らないようにすれば良いんじゃね
922 :
デフォルトの名無しさん :2012/08/24(金) 00:53:51.32
>>921 方法がよく分からないです。どうも日本語があるとエラーになるみたいです。
グーグルのページについても、先頭の <meta content=" の部分までなら大丈夫ですけど、
その後に日本語あるのでそこでエラーになります。
グーグルのページはシフトJISじゃないと思う
924 :
デフォルトの名無しさん :2012/08/24(金) 01:42:12.11
>>923 リクエストの際にutf-8を許可するとutf-8で返してくれますが、(acceptCharset)
グーグルのページを取得することが最終目的ではないので、shitsjisなどから変換したいと思ってます。
私の環境特有の問題なのでしょうか?皆さんの環境で先のページをshitjisで取得して、それらを文字化けなく表示することはできますか?
925 :
デフォルトの名無しさん :2012/08/24(金) 01:49:21.05
書き忘れました。グーグルのページは通常は Shift_JIS で返すみたいです。
先のコードの response.headers から確認できましたし、次のコマンドでも確認できます。
curl -I
http://www.google.co.jp/
ググったら解決法でてきたぞ
927 :
デフォルトの名無しさん :2012/08/26(日) 17:14:24.93
メモリリークってありますか?
あります あります
929 :
デフォルトの名無しさん :2012/08/26(日) 22:33:09.60
どこぞのソーシャルゲームで大規模にnode.jsを使ってる企業てerlangでも使った方が幸せそうだよね
931 :
デフォルトの名無しさん :2012/08/27(月) 05:51:47.74
>>929 この写真のお姉ちゃんが、開発本部長?
めっちゃ、かっこええがな。
Derbyってどうかな? Meteorよりよさそう
メテオは時期尚早なイメージ。 遊ぶには良いかもしれない。
どこかのエンジェルがドル箱を突っ込んだんだし大丈夫だろ
azureがnodejsを含んでいるけど、マイクロソフトが擦り寄ってくると何気に気持ち悪いよね
わかる
MSって邪悪な企業の代表格じゃんね。 やることなす事全部裏の打算があって気持ち悪いんだよね。
そこまではいかん
気持ち悪さはWindowsのセンスの悪さにも現れてる。
Windows8は買い控え推奨かね?
Windowsは初期にバグが多いから すったもんだを楽しみたいなら買い 普通の人なら1年くらいは様子見 (サービスパックが出るくらいまで)
node関係ないだろ?
Windows8でNode搭載の可能性がぎりある Windows版のNodeってなんかしょぼく感じるけどな
ねーよ
HPのwebOSには載ってたよね タブレット向けを兼ねたwindows8に載っても不思議じゃないから
WinJSと被るからありえない jsレベルで軽くラッパー書けば十分だろ
M$製のjs engineって性能がよくなるのか? M$ってソフトウェアの保守にかなりのコストを掛けてそうだし、 その保守コストを手放せるなら自社製のjs engineなんか捨てちまってV8でも載せるんじゃないか?w
WinRT呼び出しにCOMが必要だからないない JScript系の改良版でしょ
「Microsoft Driver for Node.js for SQL Server」が出たわけだし 「Microsoft Driver for Node.js for SQL Server CE」が出てもおかしくない、かも
RTM出てるのに、Windows 8に入ってるなんて情報見た事ない。
WinJSからWinRTを自由に使えるんだからわざわざnode.js載せるまでもなく WinRTのラッパーとしてWinJSでCommonJSを実装すればいいだけのこと
バージョンアップ速いのにずっと古いバージョン載せられてても邪魔なだけ MSJVMとかMacのPythonみたいになる
953 :
デフォルトの名無しさん :2012/09/03(月) 22:42:16.65
>>947 v8のせたらグーグル製品がms製品に標準搭載になるぞ
MSが載せたとたん、どっかのチンピラが特許侵害でMS訴えるんだろうな でいつもの Google:「うちはソースを垂れ流しているだけ。使う奴の責任。」
jvmやflashって標準では載ってないんだっけ?
入ってるわけないだろw
FlashはPCメーカーが入れてる場合はあるかもしれんが
コンシューマPCならjreプリインストールなんてむしろ印象悪くなるなw
959 :
デフォルトの名無しさん :2012/09/06(木) 23:30:03.85
時代は完全にHTML5だからな クライアントサイドのJavaは役割終わった
まぁIEさんがいるからな(´・ω・`)
961 :
デフォルトの名無しさん :2012/09/07(金) 04:24:00.60
node本ってどうなったんだろ 早く出てもらわないと困る
大人の事情で出版されることはないよ 原文のまま公式のドキュメントを読め
963 :
デフォルトの名無しさん :2012/09/07(金) 14:37:03.64
だれもつかってなーいwwwwwwwwwwww
964 :
デフォルトの名無しさん :2012/09/07(金) 19:17:21.84
ゴミゴミゴミwwwwwwwwwwwww死ねよwwwwwwwwwwwwwゴミwwwwwwwwwwwww ゴミwwwwwwwwwwwwwゴミwwwwwwwwwwwwwゴミwwwwwwwwwwwwwゴミゴミゴミwwwwwwwwwwwww
965 :
デフォルトの名無しさん :2012/09/08(土) 11:50:17.31
マルチノードってよくわからん イベントループがたくさんできるってこと?
967 :
uy :2012/09/09(日) 19:01:45.11
もしnode.jsが俺様の設計と同じなら ツリーの中にスレッドが複数走る感じじゃね それ以外の処理にその言葉を当てはめていたらセンスなさすぎる
node.jsはネーミングセンスはいいから流行るとおもう PythonやmRubyよりか大分マシ
rubyが流行ったのは、javaの流行でOOPが求められたのと、perlが無理過ぎたってだけで、 言語が流行るか流行らないはプラットフォームと仕事があるかの問題だ
jsは言語としてダボすぎるのでこのまま消え去って欲しい。
やっとCommonJSの処理系が乱立した諸子百家時代から開放されると思っていたのに… jsライブラリばっかだしてるyahooが本気を出すynodeの方が性能が良さげだと期待している そして、ギドギドになりそうな悪寒
次はGnodeですねわかります
Mnodeはまだか
976 :
デフォルトの名無しさん :2012/09/17(月) 22:29:38.83
znodeは?
977 :
デフォルトの名無しさん :2012/09/17(月) 22:32:05.41
なんかc言語で書いてアセンブラからjsにするのあるんだな 会社の人がそれで3d組んでた
64ビット整数とかどうするのかな ソフトウェアエミュレーション?
979 :
デフォルトの名無しさん :2012/09/17(月) 22:39:16.33
32bit整数でもオーバーフローの扱いとか考えたら double演算以外全部ソフトウェアエミュレーションにならね?
981 :
デフォルトの名無しさん :2012/09/17(月) 22:50:56.19
エミュレートになるよ なぞのsse4.1オプションとかあるけど 実際最適化かかるかわからんし
982 :
デフォルトの名無しさん :2012/09/17(月) 22:53:23.74
エミュレートというかint32をhi、low扱うクラスでオブジェクトにしてるだけだからそもそも 数値で扱えない
それをエミュレートという
984 :
デフォルトの名無しさん :2012/09/17(月) 22:56:09.92
32ビット整数値は一度でもビット演算するとint型固定になる そうでない場合たぶんdouble型で整数値がほじされてる
>>984 内部的にint32で保持されることはあるけど
値が大きくなったら勝手にdoubleになるよ言語仕様的に
外からは一切区別できてはいけないことになってる
emscriptenはJavascriptのNumber型を Cのnumeral types全てに素朴に使うような実装じゃないよ。 手抜きはしてない。
そのかわりクソ遅くなるけどな 既存のコードの利用を意図しないんだったら、 むしろ割り切ってdoubleしか使えない方がいいんじゃないか
990 :
デフォルトの名無しさん :2012/09/19(水) 00:28:30.40
>>989 emscriptenクソ早いよ
c言語で最適化された後のコードだから
中でGPUに渡したりする?
994 :
992 :
2012/09/19(水) 00:57:21.33 あー勘違いしてた、C to JSか こういうトランスレータって最近増えてきたね Cofee早く撲滅しないかな