node.jsまとめてみた

2014年5月6日更新 view: 16 view
nodejs
photoBy: http://www.opsou.com/blog/wp-content/uploads/2011…

node.jsの2ch.scまとめ

1 : 健太
pythonやrubyやPHPと同じ土俵でjavascriptが使えるようになりました。
サーバサイドjavascriptについて語りましょう。

node.js - googleが開発したV8エンジン上で実行できる処理系
http://nodejs.org/
Rhino - JVM上で実行できる処理系
https://developer.mozilla.org/ja/Rhino

javascriptはrubyと比較してもかなり速い
http://shootout.alioth.debian.org/u32/benchmark.php?test=all&lang=v8&lang2=yarv
基礎から学ぶNode.js
http://gihyo.jp/dev/serial/01/nodejs
node.jsの概要とアプリケーション開発の準備
http://gihyo.jp/dev/serial/01/realtimeweb/0002

前スレ
【node.js】サーバサイドjavascript【Rhino】
http://toro.2ch.net/test/read.cgi/tech/1310087535/
2 : 恵里 2013/01/23(水)19:33:54.16
関連スレ
Node.js + Express
http://kohada.2ch.net/test/read.cgi/php/1357402658/

Nodeビギナーズブック
ttp://www.nodebeginner.org/index-jp.html
gihyo.jp×東京Node学園祭2011コラボ企画―「東京Node学園祭2011」の見どころ教えます!
ttp://gihyo.jp/dev/serial/01/nodefest2011
Node.jsとは何だったのか
ttp://gihyo.jp/dev/serial/01/llplanets/0004
Node.js 入門
ttp://www.slideshare.net/forest1040/nodejs-7658878
Node.js 入門
ttps://speakerdeck.com/badatmath/nodejs
TypeScriptをNode.js で動かしてみる
ttp://techblog.hilife-jp.info/2012/10/nodejs-typescript/
TypeScriptへの入口
ttp://www.slideshare.net/harutama/ts-15483898
3 : 芙美 2013/01/23(水)19:36:34.99
いつのまにかインストール簡単になってるね
8 : 亜湖 2013/01/23(水)21:05:43.97
ほんの少し前から、rubyの記事を見なくなってnode.jsばかり
rubyとは何だったのか
9 : 祥太郎 2013/01/23(水)21:10:00.84
node.js + express で RoR 抜いちゃったね
20 : 史貴 2013/01/25(金)18:15:49.31
MySQLのORMって何使ってる?
Sequelize使ってみてるんだが、イマイチなんだよなーと。
特にvalidateで他のテーブルの値確認しようとすると、findが非同期だからスローしたくても全体のエラーになっちゃう。
同期findか非同期validateできればなあと。
非同期validateはgithubでも話題に出てたんだが。
29 : 友晴 2013/01/28(月)17:02:34.70
nodejsが使われてる国内サイトの情報求む
34 : 悌彰 2013/01/28(月)21:25:09.42
WebSocketの実装は確かにいくつもあるよ
ただそれだけならNodeである必要はない
好きなの使えば良い
37 : 雅之 2013/01/29(火)03:11:08.29
JavaScriptでWebアプリを開発できる「Node.js」活用入門
http://sourceforge.jp/magazine/12/04/11/0618228
Build a Node.js web application using Express on a Windows Azure Cloud Service
https://www.windowsazure.com/en-us/develop/nodejs/tutorials/web-app-with-express/?redirectToLocale=false
Bing Maps AJAX Control SDK
http://www.microsoft.com/maps/developers/web.aspx
サーバサイドJavaScript Node.js入門 (古い)
http://shimz.me/blog/category/node-js
Node.jsを使ってみよう(2):Node.js、MongoDBでデータの保存 2013-01-22
http://www.atmarkit.co.jp/ait/articles/1301/16/news009.html
Node.jsを使ってみよう(1):Node.js、Socket.IO、MongoDBでリアルタイムWeb 2012-10-12
http://www.atmarkit.co.jp/ait/articles/1210/10/news115.html
CoffeeScript と Node.js による関数型の JavaScript
http://www.ibm.com/developerworks/jp/java/library/j-coffeescript/
38 : 琳 2013/01/29(火)03:28:33.21
0.8で文字コード関係の改善が日本人にはけっこう重要っぽい?
http://www.slideshare.net/koichik/tng6-nodev08
0.6と0.8って何が違うの?
http://sourceforge.jp/magazine/12/06/26/0532209
0.8って安定版?
https://raw.github.com/joyent/node/v0.8.0/ChangeLog
まぁ本当に安定してるかどうかは別の話ですがね

GREE、Zynga、Yammer、Zendesk、Trello、FlightAware、Cloud9がSocket.IO使ってるらしい
https://speakerdeck.com/u/rauchg/p/socketio-10

coffeescript 上で JVM 作ってみたり
逆に java で node.js みたいの作ってみたり
http://www.infoq.com/jp/news/2012/05/vertx
https://github.com/purplefox/vert.x
http://ja.reddit.com/search?q=+vert.x+node.js
http://vertxproject.wordpress.com/2012/05/09/vert-x-vs-node-js-simple-http-benchmarks/

理解していない人がドヤ顔でdisってるw
http://www.anlyznews.com/2011/02/nodejs.html?m=1
これは痛いなww
>JavaScriptのプログラミング言語としての限界が影響する。つまり、オブジェクト指向が不完全であること
そもそもオブジェクト指向が最強だと言う前提になってるし
突っ込みどころが多過ぎでヤバイw
そのブログへの反論ならたしか見たことあった……と思って探してきた
ttp://d.hatena.ne.jp/t_43z/20110220/1298202879
39 : ハニー 2013/01/29(火)03:59:39.77
良く使われているパッケージ
http://meso.hatenablog.com/entry/20120226/1330228258
async.js
http://d.hatena.ne.jp/koichik/20100926#1285502400
サーバサイドJavaScript Node.js入門 2012-10-26
http://meso.hatenablog.com/entry/2012/10/26/111330
40 : まこ 2013/01/29(火)10:49:26.64
Async.js は自動的に非同期処理や並列処理にしてくれるライブラリじゃないよ
http://qiita.com/items/c68e6472029ebd8b69e8

Meteor
http://meteor.com/screencast
63 : 宏美 2013/02/05(火)22:32:35.89
サーバ立てるの面倒クサがってたら、いつまで経っても、特定企業のロックインから抜けられんぞ
66 : 敬一 2013/02/06(水)14:15:04.13
node.js はうるう秒対応してるの?
73 : 佑美 2013/02/08(金)14:38:52.20
npm listってやるとC:\Users\takahashiって出るんですけど
ここを変更する事ってできますか?
78 : 亜里沙 2013/02/10(日)09:06:06.42
あとで読む

node.js とは
ttp://d.hatena.ne.jp/badatmath/20101026/1288109275

CommonJS の経緯
ttp://www.blueskyonmars.com/2009/01/29/what-server-side-javascript-needs/
133 : 美祐 2013/04/05(金)12:49:44.17
>>130
ShowAsync()ってメソッドを自分で呼んでるのに、それに気づかないアホ。
コピペ厨ってこんな感じなのかなと思わせる記事。
134 : 清香 2013/04/05(金)15:35:50.64
libxmljsでXMLからjsonにパースできるといのはわかりましたが、jsonからXMLにするのにはどうしたらいいんでしょうか
140 : 朋生 2013/04/06(土)14:54:15.87
今、セッション管理について調べてるんですがcookieとexpressとsocket.ioのあたりで

ぐちゃぐちゃでしかも紹介してるベージみんなやり方違うし

発狂しそうです
199 : 有美 2013/07/21(日)12:45:09.10
案の定盛り上がってねーじゃねーか
プログラムの世界でもステマが横行してるわ
201 : 由奈 2013/07/22(月)12:43:41.18
node.jsはPHPに比べて同じメモリ容量で大量のアクセスを捌けるんですか?
209 : 早文加 2013/07/23(火)22:29:05.28
npmって統一したリポジトリにではなく、
実行したディレクトリにパッケージをインストールするんですね
プロジェクトごとに実行ファイルも持つみたいなスタイルなんでしょうか?
210 : 恵理 2013/07/24(水)01:37:00.17
-gオプションつけるとグローバルにインストールされるけど
固有のものはプロジェクトごとにpackage.jsonで管理する感じ
309 : 千代 2013/10/09(水)05:05:37.85
例えば大げさな例だがこういうのは厳禁ってこと

server.on('connect', function(socket) {

var messages = []
socket.on('data', sync(function*(data) {

var length = messages.length
yield await(fileAddAsync, ['log.dat', length + ':' + data])
var messages[length] = data

}))

})

つまりとあるリクエストの処理が完了し切る前に次のが走っている、
時には次のほうが先に終わる場合だってありえるから
つまり一時休止より前に取得した情報は
一時休止前に取得した情報を使って休止後に処理をするのは危険ということ
344 : 紗有里 2013/10/16(水)01:55:02.07
Async使ってる奴少ないのか?
スポンサードリンク
345 : 吾郎 2013/10/16(水)09:34:34.83
むしろ多数派
https://npmjs.org/

「Most Depended Upon」の2位がasyncで3000以上のモジュールに依存されてる
Promise実装ではqが人気で650モジュールに依存されてる
346 : 穣 2013/10/16(水)12:13:11.53
そもそもPromiseがただコールバックをメソッドチェーン状にするだけのものと認識されているから仕方ない
本来はジェネレータ関数をラップするみたいな奇妙のことをせずとも、それに勝るポテンシャルを持っているのに
347 : 奈津美 2013/10/16(水)13:21:46.94
つーか、結局コールバックを使う時点で察し
元々(ヒューイット)のプロミスは非同期の文脈が付いただけで本来の値のように扱えるもの
(今でいうモナド)だったが、JSのプロミスはなんちゃってだから
348 : 愛子 2013/10/16(水)13:34:20.79
そういうスタイルは整合性が崩れないように注意深いプログラミングが必要だから
コールバックを楽に扱う仕組みとしてのPromiseでは本末転倒だろ
350 : 俊弥 2013/10/16(水)14:02:06.04
await/yieldとPromiseは役割が違うし共存可能
問題はyieldとPromisehaES6だがawaitがES7で間が開くこと
この間に無理してawaitっぽいことしても将来ゴミを残すだけだろうから
なるべくPromiseベースで設計するのがいいと思う
374 : 淳 2013/10/24(木)14:08:44.22
sails.jsってどうなの?

ちょっと使ってみたけど、
使いやすいっちゃ使いやすいけど、
細かい部分がわかりづらくて
結局時間かかってしまってる気がする・・・
375 : ゆき江 2013/10/25(金)04:26:42.57
>>374
お前が試したことが全てだよ
結局時間が掛かるのはNode.jsの宿命
376 : 実谷子 2013/10/25(金)05:08:02.07
Node.jsはアプリケーションサーバーとして本当に最低限なことをさせて
クライアント側でできる限りこなすべし

複雑なやり取りが必要なものは設計から見直す
出来るだけシンプルに、構造ではなくロジックに集中して平べったい設計にする
フレームワーク的なもので厳かにする必要は通常ない
378 : 日加里 2013/10/26(土)05:22:41.32
ルーティングは俺はやらないほうがいいと思う
やるとしても当然単離する
400 : あずさ 2013/10/31(木)10:54:39.56
どうでもいいけどNode.jsだと必要な時Workerをサーバーで肩代わりするような設計が
すごく簡単にできることに気がついた
401 : 恵浩 2013/10/31(木)10:56:12.24
どういうこと?
402 : 雄一郎 2013/10/31(木)11:04:05.47
Workerサーバー立てて置いてWebSocketでやりとりする
403 : 保美 2013/10/31(木)16:13:44.82
参加ユーザー全員が経過時間を共有(同期)することってできます?
例えば、ゲーム開始からきっかり30秒後にメッセージを送る、とか。

1.ゲーム開始時間をunixtimeなどで保持する
2.その時間と現在時間を比較して経過時間を計算する
3.その経過時間を参加ユーザー全員と共有

って感じでできそうだけど、
node.js+socket.ioでやるとなると
2や3の部分はどういうプログラム書いたらいいでしょうか?
407 : 幸歩 2013/10/31(木)16:59:48.79
最近、node.jsがんばってるね。 なんか変わった? 昔作ったwicket appをどうしようか考え中
490 : 宏昌 2013/12/15(日)18:04:26.45
>なぜHandleScopeの宣言がないとメモリリークするのか? V8のデザインに起因します。
>V8では変数を扱うには、直接オブジェクトのポインターを扱わず、Handleを経由して利用します。
>Handleには PersistentとLocalの2種類があり、Persistent Handleは明示的に解放させないといけません。
>一方 Local Handleは、 HandleScope の変数を宣言しておくとそのスタック領域に格納され、
>デストラクターとともに自動的に LocalHandle が解放される仕組みになっています
>(パッと見るとHandleScopeの宣言がおまじないのように思えます)。
>
>Nodeコアで非同期コールバックを呼び出す関数 MakeCallback 中に LocalHandle を使用していますが、
>今回それを実行する HandleWrap::OnClose 関数で HandleScope が宣言されていませんでした
>(おそらく node-v0.9.xの時代から)。これが原因で、例えば socketオブジェクトをクローズするような場合、
>libuv からこのOnClose が呼ばれてコールバックが実行されますが、その際 LocalHandle が解放されず
>Undefined オブジェクトが親(メインループ)の HandleScope スタックに溜まってしまっていたということです。
>
>よってHTTPクライアントの接続切断毎に4バイトずつメモリリークしていた換算です。
>溜まっていたJSオブジェクトは全て同一の Undefined オブジェクトだったため、
>V8のHeap領域の方は増加しなかったわけです。通常の利用ではそれほど目立たない状況でしょうが、
>Walmartのサービス負荷のレベルだと無視できないレベルになり致命的な状況を発生させるものでした。
>
>実は今回のバグ発見のきっかけとなった setImmediate の関数は、私が node-v0.10で改変したところでした。
>自分が書いたところにメモリリークが見つかったと指摘された時は本当に肝を冷やしましたが、
>node-v0.11のマルチコンテキスト対応時に間違えて HandleScope を削除したことによるものでした。ホント焦りました。

なるほど。
漏れのモジュールも見直そう。
503 : 亜弥 2013/12/20(金)06:25:36.28
俺は正直言ってsocket.ioについては詳しくないので分からない
分かる奴は答えてあげたらいいんじゃね
504 : 冬彦 2013/12/20(金)13:46:44.31
ipとportで判別じゃ駄目なの?
socket.handshake.addressのaddressとportでクライアントのipとportとれるけど。
506 : 民子 2013/12/21(土)03:00:08.21
>>504
portは不定だから同じユーザを同定できない。

一般的にはクッキー食わせて同定する所だろうけど、
クッキー食わせないならURLにセッションID混ぜたりUAなどで頑張ってトレース。
507 : 華 2013/12/26(木)00:43:34.80
非同期プログラミング難しすぎワロタ

$.watch() 連発しちゃうんだけど
508 : 三郎 2013/12/26(木)21:41:19.64
asyncかdeffered/promise扱うライブラリ使わないと厳しい
522 : 克哲 2014/01/03(金)13:22:49.50
PayPal社がバックエンドをJavaからJavaScriptへ移行
http://www.infoq.com/jp/news/2014/01/paypal-java-javascript
Nodeも期待に答えられるように進化しないとね
V8にも圧力かけないと
524 : 千枝子 2014/01/03(金)15:21:10.90
勘違いさせてしまったようだね
オープンソースなんだから積極的にissue投げたりトピック建てて盛り立てていこうね程度の意味だよ

勿論パッチを投げれるのならそれに越したことはない
JavaScriptの部分も多いから、周りのソース見て慣習を把握しておけば案外技術は要らない

でもそこまでやらなくてもいい
例えば今だとV8にPromiseが実装されたはいいけど、欠陥のままで一月以上も修正されてないから
Node0.11のV8バージョンがその一歩前で立ち往生してるじゃん?

こういう時に皆がPromiseのトピックにstarを付けるだけでも圧力になって、優先順位が上がる
それとか新しい実装をした人ってレビューを欲しがってるからそれをしてあげる
作ってるのは人間だからこういう働きかけが実際とても効果がある
529 : 敦 2014/01/03(金)19:08:18.31
twitterアプリを試してみようと思って

$ npm install twitter-api

と入れると、

npm http GET https://registry.npmjs.org/twitter-api
npm ERR! Error: failed to fetch from registry: twitter-api
npm ERR! at /usr/share/npm/lib/utils/npm-registry-client/get.js

みたいなエラーが表示されてインストールできないんですけど、なぜなんでしょう?
557 : さな 2014/01/09(木)19:07:52.99
サーバーサイドで大規模処理があるなら非同期は仕方ない。
小さいサーバなら同期的に書けば良い。node.jsの出る幕ではないが。
558 : レッド 2014/01/10(金)01:02:43.14
>>554
使ってればその内利点も分かってくるさ
nodejsがjavascriptを選んだ理由とかね
559 : ひとみ 2014/01/11(土)14:28:01.14
当時は全然ライブラリが揃ってなかったからだよ > node.js がjsを選んだ理由
560 : 左矩羅 2014/01/11(土)15:37:23.30
丁寧に書くと「JSには同期I/Oに依存したライブラリが皆無だったから」
564 : 千種 2014/01/11(土)20:25:24.71
コールバックベースだったのが今ではジェネレーターベースになり、これからはfutureベースになる。
JSの元のシンプル性とポテンシャルが活きてるのは間違いない。
巷に溢れてるサーバーサイド言語みたいに、便利そうなのをどんどんつぎ込んで構文に一貫性が無くなったりしてないのもGood。
そういう言語の反省を取り入れてこれから進化していけるのもいいね。
601 : 雄平 2014/03/05(水)02:57:44.04
js使えないけど、node.jsから入門ってありかな?
PHPは使えるけど、jsはほとんど分からない。
602 : 禮子 2014/03/05(水)03:13:44.77
>>601
phpでサーバサイドの経験があるなら、jsもサーバサイドの方が分かりやすいかもね。
604 : るり花 2014/03/06(木)01:08:48.57
サーバサイドJSって今後のWebアプリの主流になりますかね?
618 : 弥香 2014/03/11(火)05:00:25.40
これってRSSとかをリアルタイムで更新してくれるのって得意なの?
例えばアンテナサイトとかで更新ボタン押さないで更新情報を表示させていくとか出来る?
619 : 亜弓 2014/03/11(火)05:48:56.29
>>618
出来るできないでは出来る
RSS鯖→node.js鯖→ユーザって構成の場合にnode.js鯖→ユーザのところを繋ぎっぱにしてプッシュとかは出来る
単一のRSS鯖→node.js鯖通信の結果を複数(多量)のnode.js鯖→ユーザ通信にぶん投げるとかも出来る
node.jsのプロセスが上がりっぱなしだから定期通信をcronとかで回さなくてもいいとかも利点になる

でもRSS鯖→node.js鯖の部分は普通のHTTPアクセスだからそれ自体は特別得意ってことはない
普通に、定期的にアクセスしてチェックするしか無い

繋ぎっぱにしてプッシュ配信してくれるRSS系のフィード提供サービスが有るなら相性も良さそうだけど…
そういう意味ではTwitterのストリーミングAPIとかとは相性いいのかも
620 : 俊一 2014/03/11(火)21:12:46.41
非同期プログラミングVS同期プログラミング
ここでつまづく
621 : 彩美 2014/03/11(火)21:41:09.64
プログラムが実際にCPU上でどういう風に動いてるのかを理解できてれば
非同期プログラミングなんてどうということは無いのだけれどね
622 : 康成 2014/03/12(水)01:23:34.82
JavaScript初めてから非同期への抵抗は少なくなったが、
DB扱う時だけはどうしても慣れないな。
今までのやり方とは全く違うからな。
設計もかなり変わるんじゃないか?
スポンサードリンク

関連記事

関連カテゴリ

コロ助

web関連の記事や制作系の記事をどんどんまとめていきます。 宜しくお願いします!

ピックアップ

パソコン・ソフトウェア ランキング

7月17日 ( 水 ) にアクセスが多かった記事はこちら!