トップページtech
1002コメント339KB

【node.js】サーバサイドjavascript 3【io.js】©5ch.net

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん 転載ダメ©2ch.net2014/12/27(土) 18:40:07.70ID:MwQYLNUR
pythonやrubyやPHPと同じ土俵でjavascriptが使えるようになりました。
サーバサイドjavascriptについて語りましょう。

node.js - googleが開発したV8エンジン上で実行できる処理系
http://nodejs.org/
io.js - node.js 互換で Joyent の影響からの脱却を目指す処理系
http://iojs.org/
Rhino - JVM上で実行できる処理系
https://developer.mozilla.org/ja/Rhino

io.js の経緯
http://stackoverflow.com/questions/27309412/what-is-the-difference-between-node-js-and-io-js
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 2【Rhino】
http://peace.2ch.net/test/read.cgi/tech/1358937029/
【node.js】サーバサイドjavascript【Rhino】
http://toro.2ch.net/test/read.cgi/tech/1310087535/
0554デフォルトの名無しさん2015/07/11(土) 15:17:14.56ID:7zNddN8p
>>552
そういう意味でもBabelって便利なんですね
しかしまずはes6を覚えねば

>>553
使えますよ。webpackとかでもrequireできますし
最近はbower使わなくなってきました
0555デフォルトの名無しさん2015/07/11(土) 16:56:32.75ID:ElKMe50S
webpackやBrowserifyって使ってる会社少ないよね?
使ってるのは個人ばっかりでqiitaのやってみました系ぐらいしか
情報も見つからない。
0556デフォルトの名無しさん2015/07/11(土) 23:36:29.68ID:dZGExdkC
ReactではBabelとwebpackの組み合わせがデファクトになってきてるからこれから事例も増えるだろう
上に出てたpixiv Sketchや米Yahooの新サービスDaily FantasyもおそらくReact + webpack
https://sketch.pixiv.net/
https://sports.yahoo.com/dailyfantasy/
どちらもサーバはnode/io.jsを使ってIsomorphic JSしてる
0557デフォルトの名無しさん2015/07/13(月) 13:34:33.33ID:oX4poPnV
Ajax使うとき皆さんは何を使っていますか?JavaScriptだとjQueryのAjaxが一般的ですがnodeのミドルウェアであるnajaxや素のAjaxなど色々ありますが・・・
0558デフォルトの名無しさん2015/07/13(月) 14:18:54.66ID:+NoacgtO
request
0559デフォルトの名無しさん2015/07/13(月) 17:51:28.66ID:UxTEJ+9t
http://blog.sarabande.jp/post/52095868617
0560デフォルトの名無しさん2015/07/13(月) 17:58:47.22ID:oX4poPnV
requestというモジュールがあるのですね!ありがとうございます。早速使いたいと思います
0561デフォルトの名無しさん2015/07/13(月) 18:00:12.70ID:UxTEJ+9t
>>559 のリンク先にそれ以外のものが比較できるようになってるからそっちも参考にして
0562デフォルトの名無しさん2015/07/13(月) 20:32:09.71ID:Rgm4BYFL
fetch
0563デフォルトの名無しさん2015/07/14(火) 13:28:49.57ID:7Tz/sGrk
のび太さんの
0564デフォルトの名無しさん2015/07/14(火) 13:46:42.96ID:vQq43Fe2
そびえ立つキノコを
0565デフォルトの名無しさん2015/07/14(火) 16:03:54.88ID:sVWjNIFt
etch
0566デフォルトの名無しさん2015/07/14(火) 16:12:54.91ID:VxoBFrok
lenny
0567デフォルトの名無しさん2015/07/16(木) 11:57:26.38ID:/b6luSAZ
>>555
あんたが知らないだけで企業でも開発チームが取り入れている
公式ドキュメントがあるのに何故遠回りして情報を探したいの?
0568デフォルトの名無しさん2015/07/16(木) 12:40:29.48ID:ytMdukkF
>>567
日本語で書いてないと読めないんでしょ
0569デフォルトの名無しさん2015/07/16(木) 13:02:31.36ID:Q/SdAAm+
つまり日本企業はないってことか。
0570デフォルトの名無しさん2015/07/16(木) 13:12:59.33ID:WO54leEH
日本はIT後進国
0571デフォルトの名無しさん2015/07/16(木) 13:19:58.88ID:vX8sQqWz
公式嫁って言ってるだけなのに、何故企業の話になるんだろう
日本語も読めない人たちだったか
0572デフォルトの名無しさん2015/07/17(金) 19:23:42.31ID:m6snKPvy
Koaのミドルウェアのコードにyield* myfuncfoo.call(this,next) みたいな表現あるけどyield*ってなんだこれ
0573デフォルトの名無しさん2015/07/17(金) 19:43:09.66ID:GbM3RqXf
>>572
http://www.ecma-international.org/ecma-262/6.0/#sec-generator-function-definitions
0574デフォルトの名無しさん2015/07/17(金) 19:49:39.73ID:3HOJEXFc
>>572
generatorの中でgeneratorを使うための構文
myfuncfooがyieldした値をyield*で渡せる
0575デフォルトの名無しさん2015/07/17(金) 22:02:28.01ID:vn+YJXYM
なるほどyieldの中でyieldするには、yield*つかうのと、thisとnextの受け渡しが必要なのね

ありがとう!
0576デフォルトの名無しさん2015/07/17(金) 22:33:34.91ID:3HOJEXFc
thisとnextはyield*とは無関係
単にmyfunctionfooをthis.myfuncfoo(next)の形で呼び出したいというだけ
yieldとyield*の違いは

function* g1() {yield [1, 2, 3];}
function* g2() {yield* [1, 2, 3];}

を比べてみるとわかりやすい
# yield*は、より正しくは「generatorの中でiterableを使う」ための構文で、generatorはiterable
0577デフォルトの名無しさん2015/07/19(日) 23:55:21.82ID:Qo0PCiiC
nodeでmysql使ってる人、どんなライブラリ使っていますか?
nodeでデータベースを抽象化したもの(mysqlとかpostgreとか変更可能なの)とか
O/Rマッパーみたいなのもので有名なものありますか?
0578デフォルトの名無しさん2015/07/20(月) 00:22:47.16ID:+nfJVLqc
http://bookshelfjs.org/
0579デフォルトの名無しさん2015/07/23(木) 10:21:56.96ID:07HCnvKF
指定したディレクトリの中のファイル名をテキストファイルに書き出すのってどうやるの?
コマンドプロンプトだとこう

dir /b/a C:\ > C:\tmp\test.txt

書き出したファイル名の後ろは改行にしたいんだけどどうやんのか分からないorz
0580デフォルトの名無しさん2015/07/23(木) 10:41:22.61ID:FhO1w/1J
それくらい自分で解決汁
がんがれ
05815792015/07/23(木) 10:44:24.64ID:07HCnvKF
ごめん、解決しました。
簡単だった・・・
0582デフォルトの名無しさん2015/07/26(日) 14:48:46.53ID:qZxuNCqf
>>577
SequlizeとかBookselfとかがあるよ
0583デフォルトの名無しさん2015/08/05(水) 11:56:12.56ID:DlON+Uf9
iojs v3.0.0
https://github.com/nodejs/io.js/blob/master/CHANGELOG.md#2015-08-04-version-300-rvagg
0584デフォルトの名無しさん2015/08/05(水) 22:43:18.92ID:wqHMf9zk
nodeでさ、プロジェクトディレクトリにnode_modulesがあっても
そっちを見ないで別の所を参照させる方法ある?
0585デフォルトの名無しさん2015/08/05(水) 22:43:51.05ID:wqHMf9zk
なければ、別のディレクトリを優先する方法でもいいけど。
0586デフォルトの名無しさん2015/08/06(木) 21:18:31.75ID:v62w5bbN
NODE_PATHでできるのでは
0587デフォルトの名無しさん2015/08/06(木) 21:32:21.06ID:sO/WbnI6
NODE_PATHは追加のみ
0588デフォルトの名無しさん2015/08/06(木) 22:39:22.85ID:RRqMGYyw
ひどいハックでよければこんな起動用スクリプトで

var firstPath = '・・・';
var loader = require.extensions['.js'];
require.extensions['.js'] = function(module, filename) {
 module.paths.unshift(firstPath);
 loader(module, filename);
}
require('./app.js'); //本来の起動スクリプト
0589デフォルトの名無しさん2015/08/06(木) 22:43:08.67ID:9VONu6kL
使わんから全然覚えてないけどmodule参照先の優先順位が環境変数にあったと思う
0590デフォルトの名無しさん2015/08/07(金) 10:53:00.83ID:ueQ0MvNL
中身がわからんままKoa使って作ってしまったけど、ようやくyieldやcoの仕組みがわかって、実はexpress+coで作ったほうが良かったのでは感ある
みんなどうしてるんだろうなー
0591デフォルトの名無しさん2015/08/07(金) 11:40:35.36ID:uZ08PPfa
koaがすたんだーどになるん?
0592デフォルトの名無しさん2015/08/07(金) 12:30:33.32ID:ajDAIYpe
v3.0でinspector動かない
https://github.com/node-inspector/node-inspector/issues/716
0593デフォルトの名無しさん2015/08/07(金) 15:33:39.21ID:ajDAIYpe
Visual Studio Codeでもデバッグできるみたいだし
これで良いか
0594デフォルトの名無しさん2015/08/07(金) 16:35:11.08ID:9BmtsJfm
>>593
あんなゴミソフト使うくらいなら、Atom使うわ
0595デフォルトの名無しさん2015/08/07(金) 18:35:18.69ID:ajDAIYpe
Visual Studio Codeは止まったり変数の内容が見えなかったりしてデバッグがろくに出来なかった
普通のVisual StudioにNTVSプラグイン入れた方がマシだった

atomはatom-node-debuggerがあるけど
SourceMap対応してないみたいじゃん
0596デフォルトの名無しさん2015/08/07(金) 21:49:56.47ID:ueQ0MvNL
WebStormを毎月インストールし直しながら使ってる
sourcemap対応でAltJSでも直接デバッグできて良い
0597デフォルトの名無しさん2015/08/20(木) 02:21:07.22ID:vRA0t8Vw
Node.jsとio.jsの最初の統合リリース「Node.js 4.0」が9月に登場予定
http://www.publickey1.jp/blog/15/nodejsiojsnodejs_409.html
0598デフォルトの名無しさん2015/08/20(木) 04:21:45.31ID:/ofAbfuE
Node.io に汁
0599デフォルトの名無しさん2015/08/21(金) 01:16:55.03ID:FY4vSw0x
更新により俺様のスケルトンが死なないことを祈る。
0600デフォルトの名無しさん2015/09/01(火) 00:37:44.20ID:6FLQcxbw
node-inspectorはいつの間にかv3.0系に対応してた
0601デフォルトの名無しさん2015/09/04(金) 15:56:01.44ID:kfMK3o00
>>595
その環境でnode.jsのバージョンを0.12にできたら最高なんだがね
0602デフォルトの名無しさん2015/09/09(水) 13:45:10.34ID:cLSarNth
4.0にバージョンアップしたら動かなくなったプロジェクトが生まれた\(^o^)/
0603デフォルトの名無しさん2015/09/09(水) 18:56:06.41ID:RxSUVlR8
お誕生日おめでとう!
0604デフォルトの名無しさん2015/09/10(木) 13:58:51.29ID:uEOT6dHU
4.0にしたらしたらパッケージを再インストールしないとダメだな
socket.ioはnode 0.12のときいれたのをそのまま使ったら動かなかったけど入れなおしたら使えた
0605デフォルトの名無しさん2015/09/17(木) 17:04:43.69ID:RsFzCYSG
早くもv4.1.0に
0606デフォルトの名無しさん2015/09/18(金) 16:30:18.86ID:cX4++fAL
4.1にしてからメモリ消費が少ない気がする
0607デフォルトの名無しさん2015/09/21(月) 15:15:12.61ID:03JYZVpu
「globalで既にそのモジュールが導入されていたらそっちを使う」
みたいな書き方ってできないのかな
devDependenciesに追加したり動作確認のためnpm iしてると容量がモリモリ増える
0608デフォルトの名無しさん2015/09/24(木) 22:37:01.93ID:rTPavUhs
場所が別の同じ名前のパッケージをガンガン読み込むので、メモリ効率悪いなとは思う
0609デフォルトの名無しさん2015/09/24(木) 23:28:32.67ID:d+OBXrtj
npm v3でpeer dependencyの挙動が標準になるって見たキガス
0610デフォルトの名無しさん2015/09/25(金) 10:15:18.69ID:8L6EHGDv
npm linkしまくる
0611デフォルトの名無しさん2015/09/26(土) 11:30:42.49ID:/RmKDqih
nodejs4.1.1に同梱のnpmでnpm -g updateを実行しても何のメッセージもでないしずっとプログラムが終了しないんですが
npm -g lsでインストールされたパッケージは表示されます
何でですか?
0612デフォルトの名無しさん2015/09/26(土) 13:11:16.89ID:gA+qxsAJ
以前のnpmで導入したパッケが多くて異様に時間掛かってるとか
うちはnpm自身を2→3に更新したら30分弱掛かったよ
0613デフォルトの名無しさん2015/09/26(土) 14:48:43.57ID:lLanKiSi
npmは3になってから大幅変更したからその影響かな
node-gypとかビルドできるようになったのだろうか
0614デフォルトの名無しさん2015/09/28(月) 00:36:12.08ID:amocDuCq
processにはdlopenと言うネイティブモジュールを直接開くメソッドがあるが
何故かドキュメントに載ってない
普通は使わないからか

https://nodejs.org/api/process.html
0615デフォルトの名無しさん2015/09/28(月) 05:53:45.72ID:yEnfUQeq
なぜかってpublicなapiじゃないからだよ決まってるだろがアホか
06166112015/09/28(月) 10:28:45.18ID:xgIbSzto
githubからインストールした3.xの使ったら解決しました
同梱のnpmだとダメだったようでした
0617デフォルトの名無しさん2015/09/28(月) 17:13:41.52ID:c4nTogwf
requestモジュールでshift-jisでポストする方法知りませんか?
request.post(url:"http....", form{name:"名前"})
ってやると名前の部分が自動でutf8でURLエンコードされてしまうんですが
shiftjisでURLエンコードするには、またURLエンコードせずにpostするにはどうしたらいいんでしょうか
requestモジュールのどっかをオーバーライドするんでしょうか
0618デフォルトの名無しさん2015/09/28(月) 17:38:41.73ID:dlMXkm1Y
試してないけどheaderで文字コード指定するとか
0619デフォルトの名無しさん2015/09/28(月) 17:39:11.05ID:dlMXkm1Y
ググったらこれ見つかったけど
http://stackoverflow.com/questions/12040643/nodejs-encoding-using-request
0620デフォルトの名無しさん2015/09/28(月) 19:20:34.86ID:Aor/5DQQ
たぶん違うだろうけど、いつの時かnpmがやたらと
メモリ使いまくっていて1GB(?)の仮想マシンだと
メモリ不足で極端に遅くなってなおかつ落ちた時があったな。
0621デフォルトの名無しさん2015/09/28(月) 21:22:28.58ID:c4nTogwf
>>619
寝てました。
encoding: null はリクエストした後のレスポンスボディのエンコードですね。
ヘッダにcontent-type: "text/html; charset=Shift-JIS" とか色々試してみてもできませんでした。
0622デフォルトの名無しさん2015/09/28(月) 21:29:13.83ID:c4nTogwf
というかcontent-type は
request.post({url: url, form: forms},function(err,res,body){
〜〜〜〜
});
こういうふうに送信時にformをつけると勝手に
content-type: "application/x-www-form-urlencoded"
で固定されますね。
formをjsonにすると content-type: "application/json"
formをformDataにすると content-type: "multipart/form-data;

になります。
0623デフォルトの名無しさん2015/09/28(月) 21:36:22.59ID:c4nTogwf
あっ
単純に
var forms = {
bbs: "tech",
key: 1419673207,
time: 1,
FROM: "",
mail: "sage",
MESSAGE: "テスト"
};
みたいなオブジェクトじゃなくて
var forms = "MESSAGE=%82%b1%82%f1%82%c9%82%bf%82%a0" みたいに文章にしたらURLエンコードされずに行けました。
0624デフォルトの名無しさん2015/09/28(月) 22:34:56.96ID:c4nTogwf
こんにちは世界
0625デフォルトの名無しさん2015/09/28(月) 22:43:32.27ID:Aor/5DQQ
こんにちは言葉
0626デフォルトの名無しさん2015/09/28(月) 23:05:06.97ID:6eoig5dd
かーなーしーみの
0627デフォルトの名無しさん2015/10/02(金) 02:43:28.14ID:XNZaFMcC
npm run で呼び出すscriptsの値に2バイト文字入ってるとダメなのか
なんか通らないなと思ったら実行する.sh内のコメントにある日本語が原因だった
0628デフォルトの名無しさん2015/10/02(金) 04:19:40.41ID:v5WQVd91
UTF8なら大丈夫なんじゃねーの?
0629デフォルトの名無しさん2015/10/06(火) 19:59:39.44ID:uxUTfTFS
受ける会社大丈夫?
下記の条件が全て当てはまる会社にご注意下さい。

・IT系 in tokyo
・「社名 労基」でググると過去の2chスレが出てくる
・転職会議で2.5点
0630デフォルトの名無しさん2015/10/06(火) 21:09:34.01ID:rjAeuINg
マルチうぜえよ
0631デフォルトの名無しさん2015/10/09(金) 14:59:45.58ID:AB+m/9UF
他の板でマルチすると投稿制限かかるっぽいが
ここはスルーなのか?
0632デフォルトの名無しさん2015/10/15(木) 13:36:11.79ID:X53VXLpW
globalにインストールするパッケージってどうやって管理したらいいんですか?
nodejsをアップグレードする度にnpmでパッケージを入れなおしているんですが
nodejsインストールディレクトリ直下にpackage.jsonを置いてそこでnpm -g installするのか
でもこれだとnodejs入れなおす度にpackage.jsonを置き直すのが面倒くさいです

シェルスクリプトにコマンド書いといてパッケージインストールするのか
どうやるのがいいのか教えてください
0633デフォルトの名無しさん2015/10/15(木) 13:55:09.57ID:y0S0MLaK
globalを使わない俺の勝利
0634デフォルトの名無しさん2015/10/22(木) 22:13:21.69ID:FqwGkVbw
別のサーバ1で動いているservlet/JSPの画面をサーバ2で一部取り込みたいのですが、
iframeじゃなくて、サーバサイド間の通信でやるにはどうするのが簡単ですか?
サーバ2のservletからHttpURLConnectionでサーバ1にpostして画面要素を返す専用のJSP書くとかでしょうか?
06356342015/10/22(木) 22:43:49.58ID:FqwGkVbw
スレ間違ったみたいです。
初心者なのですみません。
servlretの質問ってどこにすればよいでしょうか?
0636デフォルトの名無しさん2015/10/22(木) 22:59:08.43ID:exDH+/qX
web制作板にスレはあるようだけど過疎ってるな
この板のJava系のスレで聞いてみてはいかが
0637デフォルトの名無しさん2015/10/22(木) 23:02:03.17ID:FqwGkVbw
そうなんですよね
Web製作とWebProgは過疎ってるし、プログラム板はJavaスレが乱立してるし。
0638デフォルトの名無しさん2015/10/22(木) 23:48:20.40ID:x94BcpCB
過疎っててもこの板で聞くな
0639デフォルトの名無しさん2015/10/23(金) 10:30:03.79ID:BdJb1DG5
ここで聞いたからにはJSで実装してもらおう
0640デフォルトの名無しさん2015/10/23(金) 10:47:59.06ID:YWtWkeC+
CSS/reverseproxy禁止
0641デフォルトの名無しさん2015/10/23(金) 21:42:12.05ID:BdJb1DG5
npm WARN install Couldn't install optional dependency: Unsupported

issue立ってから結構経ってるのにまだ直ってないのか
0642デフォルトの名無しさん2015/10/23(金) 23:17:33.57ID:oFKlQBDH
atomで開発するときに宣言箇所へのjump機能とか無いかな。
やっぱりtypescriptとか使わないと無理?
0643デフォルトの名無しさん2015/10/23(金) 23:28:35.34ID:BdJb1DG5
なんでAtomスレじゃなくてこっちで聞くのかわからんが
知る限りそういうパッケージはないな
0644デフォルトの名無しさん2015/10/24(土) 16:17:21.53ID:plgIlyg5
すいません。nodejs使いの方のコードリーディング環境がどうなっているのか知りたいんです。
0645デフォルトの名無しさん2015/10/24(土) 17:34:30.74ID:HON9XAi6
へーそうなんだ
0646デフォルトの名無しさん2015/10/24(土) 17:36:55.42ID:u5hmnYxj
WebStorm最強
0647デフォルトの名無しさん2015/10/24(土) 18:36:07.54ID:niXzNvfm
ATOMですね判ります
0648デフォルトの名無しさん2015/10/24(土) 20:05:37.10ID:5ZgkWLmm
meanスタックってAngularの押し売りじゃん
express,mongoDBは分かる
0649デフォルトの名無しさん2015/10/24(土) 23:32:47.19ID:xfqpYsSZ
分かる
俺はmongoDBもあまりピンとこない
AWSでKVSとRDS使い分ける運用に慣れちゃったのもあるけど、それに加えてイマイチ性能出せなくて挫折しちゃった。個人的にはredis最強派
MySQLも新バージョンでjson/jsとの親和性に切り込んできたしな

話戻すと、meanって言葉はもう要らないと思う
expressは個人的には使ってるけどね
meanの内約見れば、node以外はそれぞれ代替が出まくってる以上、一過性のバズワードで終わったと思うんだ
そのnode自体もお家騒動起こしてた訳だし
0650デフォルトの名無しさん2015/10/25(日) 00:59:54.59ID:Knll6k9K
meanでそろえたところで何か特別なものが使えるようになるわけでもないしな
むしろそんなワードに囚われるとより良い選択肢から目を閉ざすことになる
0651デフォルトの名無しさん2015/10/25(日) 20:19:18.60ID:cc/DQ18H
meanってmean.ioのことかいな?

yeoman generatorとかも一緒だけどさ、自分らで作っていない物を組み合わせる
フルスタックを自称しているフレームワークは使ったらだめだと思う。
なぜかって言うと個々のコンポーネントの変化に耐えられない。

別々の所が開発しているのでフレームワークのバージョンとは別に個々のコンポーネントが
バージョンアップしていくのだけど、フレームワークが邪魔をして個々のコンポーネントの
バージョンアップに追尾できない。個々のコンポーネントはフレームワークのことなんか
考慮せずにバージョンアップするし。

GeneratorとかGeneratorで生成した部分が古くなってしまう問題があるし、
生成した後で変更したくなった時に大変。

コンポーネントの一つを別のものに変えたいと思った時にも
同じことが言えるんだけど、フレームワークのせいで選択肢が狭められてしまう。
ひとつの構成例として参考にするにはいいと思うけどね。


Railsとかみたいに全部自分らで作っているならば、コンポーネントが個々で
バージョンアップしないので一応OK。ただしRailsに完全に依存してしまう。
0652デフォルトの名無しさん2015/10/25(日) 20:42:50.08ID:+bU3PMWA
もしかしてLAMPを知らない世代か?
俺も年寄りなんだなと思い知らされた気分だわ
0653デフォルトの名無しさん2015/10/25(日) 20:43:34.72ID:KpHRJBvu
統合パッケージまであったのね、知らなかった
俺の理解だと、meanスタックって言葉の出所は知らないのだけど、mongoDB流行り始めたあたりで「今ならjs系の開発セットでもLAMPスタックみたいなセットになるね、流行るよこれ」みたいなバズワードとして把握してた
もちろんそのころから技術コンポーネントの内約はmean.ioのサイトにあるやつと一緒

今となってはmeanって言いたいだけだろ感が強いね

あ、ご意見自体は心底から同意
■ このスレッドは過去ログ倉庫に格納されています