X



【node.js】サーバサイドjavascript 4【io.js】 [無断転載禁止]©2ch.net
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001デフォルトの名無しさん
垢版 |
2016/04/11(月) 16:28:34.52ID:ORuOCkHy
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 3【io.js】(c)2ch.net
http://echo.2ch.net/test/read.cgi/tech/1419673207/
【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/
0858848
垢版 |
2017/10/16(月) 20:56:45.49ID:x77nDEIG
>>857
お、ありがとうございます。 通りました。
じゃ、私の環境で↓のコマンドが使えるようにするにはどうすればいいのでしょうか?ちなみに、バージョンは、v8.7.0でした。
$ which node
$ node --version
0859デフォルトの名無しさん
垢版 |
2017/10/16(月) 21:14:41.96ID:VwEzpL/B
>>858
849が書いてくれてるようにPATHが通ってないんだろうからPATHを通す
パスの通し方とかでググって
コマンドプロンプト使う時の基本だから
0860デフォルトの名無しさん
垢版 |
2017/10/16(月) 21:32:19.39ID:dl4DNYXd
windowsとlinuxの違い、コマンドプロンプトとnode起動後のコンソールの違いが理解できてないっぽいな
$は入力するものじゃないしwitchコマンドはwindowsにはない
0861デフォルトの名無しさん
垢版 |
2017/10/16(月) 23:57:03.44ID:BYvG9erR
例えば、コマンドプロンプトで、
where notepad
と打てば、メモ帳の実行ファイルの場所が、表示される

where node
と打てば?
0862848
垢版 |
2017/10/17(火) 01:14:58.50ID:ISfP7NF8
皆さん、レスありがとうございます。感謝します。

ちなみに、
コマンドプロンプトで、
C:\Windows\system32>where notepad
と打つと、
C:\Windows\System32\notepad.exe
C:\Windows\notepad.exe
と表示されます。

さらに、
C:\Windows\system32>where node
と打つと、
C:\Program Files\nodejs\node.exe
と表示されます。

さらに、
https://qiita.com/taiponrock/items/9001ae194571feb63a5e
ここを参考にして、コマンドプロンプトに、
C:\Windows\system32>node --version
と、打つと
v8.7.0
と表示されます。
ってことは、「nodejsのパスは通ってる」ってことはないですか?

さらに、コマンドプロンプトで、
C:\Windows\system32>npm --version
と、打つと、コマンドプロンプトがどこかに行って戻って来ません。
0863デフォルトの名無しさん
垢版 |
2017/10/17(火) 02:57:58.14ID:HKb0WdLR
npm の仕組みについても、検索して調べて!
思い付きで、色んなコマンドを打っても、動かない

C:\Windows\system32>node --version

C:\Windows\system32>
そもそも、ここは、Windows のシステム領域だろ。
こんな場所へは行かないし、ここからコマンドを打つことは、絶対にない

自分のホームディレクトリ以下に、プロジェクトフォルダを作って、
そこからコマンドを実行する

プロジェクトフォルダ>node --version

これで、コマンドが探せないのなら、
>>849
のサイトを見て、勉強する

OS の仕組みについて、何年も勉強していなければ、
環境構築・システム運用はできない
0864848
垢版 |
2017/10/17(火) 03:06:35.78ID:ISfP7NF8
つか、わかった。
スタートメニューに色々出来るけど、
nodejs
と、
Node.js command prompt
があって、
Node.js command prompt
を立ち上げるべきを、
nodejs
を立ち上げてたのだと思う。
0865848
垢版 |
2017/10/17(火) 03:18:05.69ID:ISfP7NF8
http://gihyo.jp/dev/serial/01/nodejs/0001
つかこれの、真ん中ぐらいの、
>を実行すると,コンソールに「foo」と出るのが確認できます。
これが確認出来ました。
ありがとうございました。
0866848
垢版 |
2017/10/17(火) 03:22:08.69ID:ISfP7NF8
しかし、nodejsも、Node.js command prompt も、
どっちもコマンドプロンプトみたいなもんだけど、ドコが違うんですかね?
0868848
垢版 |
2017/10/17(火) 11:29:12.47ID:ISfP7NF8
node.jsを使ってjQueryチックにWebサイトをクローリングする方法
https://liginc.co.jp/programmer/archives/4848
これが半分ぐらい出来たんですけど、
これをちゃんとやるには自分のpcにmysqlがインストールされてないとダメなんですかね?
0869848
垢版 |
2017/10/17(火) 11:30:33.39ID:ISfP7NF8
私的には.csvのデータで十分なんだけど。
0870デフォルトの名無しさん
垢版 |
2017/10/17(火) 15:55:26.78ID:G9wCIPXR
プログラミングの学習が目的ではないみたいだし
潔く諦めてGUIのスクレイピングツールを使え

自分で学ぼうとしないやつを
いつまでも相手にするほどみんなヒマじゃないから
0871デフォルトの名無しさん
垢版 |
2017/10/17(火) 19:05:26.58ID:OFQ0CJNG
>>868
SQLiteおぬぬめ
0873デフォルトの名無しさん
垢版 |
2017/10/18(水) 11:32:51.58ID:RFRRa2Hk
KVS最強
0874デフォルトの名無しさん
垢版 |
2017/10/23(月) 09:02:07.81ID:2VeGFVWI
windows10をFCUしたら
node-notifierと言うライブラリが機能しなくなってしまいました。
呼び出すとエラーも出さずに消えてしまいます。
どこを確認すべきでしょうか?
0875デフォルトの名無しさん
垢版 |
2017/10/23(月) 12:01:05.02ID:bv0ZvSeb
クリーンなPCで検証
0882デフォルトの名無しさん
垢版 |
2017/11/06(月) 21:16:07.71ID:tccVqtCS
koaってexpressのミドルウェアそのまま使える。async await大好きマンに取ってはたまらない1品
0883デフォルトの名無しさん
垢版 |
2017/12/01(金) 17:33:36.24ID:Tsnnxn0j
koa2+reactjsのdynamicで快適。 ejsやjadeを使わず、javascriptのみですっきり。
いいで〜 koa2+react。
0884デフォルトの名無しさん
垢版 |
2017/12/01(金) 20:58:49.48ID:dEoQxhVh
>>883
うむ
0889デフォルトの名無しさん
垢版 |
2017/12/04(月) 01:47:10.73ID:sdiyRgle
メテオとかいうFWって死んじゃったんですか?
0890デフォルトの名無しさん
垢版 |
2017/12/04(月) 20:47:28.49ID:EJPuWg3p
全体的に名前空間で仕切られてないこのグダグタnodeライブラリ。
10年後も、その時の最新のnodeで使えるんなほんまに。
0893デフォルトの名無しさん
垢版 |
2017/12/12(火) 22:19:31.72ID:gHkSE4eN
node.js難しいっていうイメージだったけど、
JavaScriptがウンコだったってことみたい

なんでこんなに散らかってしまったんだ
せめて書き方を統一しろよ
0895デフォルトの名無しさん
垢版 |
2017/12/12(火) 23:57:54.77ID:8VRWkTHd
なんでって20年以上も歴史のある言語で産まれたときとは用途も規模も全然違ってるからな
0896デフォルトの名無しさん
垢版 |
2017/12/13(水) 00:01:47.40ID:pDkqMCU5
JavaScriptは言語仕様が使いにくいとは思う
小規模なら使いやすいかというと全然そんなことない
0902デフォルトの名無しさん
垢版 |
2017/12/14(木) 10:39:14.62ID:y5gxd1px
ES2015に従えばプロトタイプってことを意識することはないかな。
既存のクラスにメソッド追加したいときとかなら意識するけども。
0903デフォルトの名無しさん
垢版 |
2017/12/14(木) 20:55:43.66ID:LEbaYuuB
>>902
prototypeを使って簡単なことをするのと
prototypeを使って複雑なことをするのでは
当たり前だけど難易度が違うのさ

既存のクラスにメソッドを追加するのは、
prototypeの簡単な使い方に含まれる
意味はわからなくてもいいから、こういう書き方をすればOK
程度の説明だけでもクラスにメソッドを追加することはできる
0904デフォルトの名無しさん
垢版 |
2017/12/15(金) 02:24:03.53ID:OK9q/vji
クラスだけじゃなく手続き型っぽくも書いたり
はたまた関数型っぽくも書いたりするとこがどう書いていいか分からなくて難しいってことなんじゃない?

凄く冗長に厳かに書いたかと思えばハッキ―なテクニックも使ったりもするしね
世の中には「良い書き方は1つ」を目指してる言語もあるけどJSはその対極だからね
標準ライブラリが少ないという点もそう

俺はそういう点こそが好きだけどね
0905デフォルトの名無しさん
垢版 |
2017/12/15(金) 07:18:04.72ID:18KhAamS
OOPが常に最適解ではないというのは衆知の事実だしな。
俺は基本関数型風で書くのが好みで、データ型にtsのinterfaceが使えれば充分だ。
0906デフォルトの名無しさん
垢版 |
2017/12/15(金) 11:04:58.73ID:vwC80Nto
node-redを使ってるんですが
フローって作成するとメモリに常駐するんですか?
作れば作るほど実行してなくても他のフロー処理速度は遅くなっていきますかね?
0907デフォルトの名無しさん
垢版 |
2017/12/15(金) 17:13:59.28ID:WQPs5rl9
パイプ演算子追加されれば関数型っぽく書くのが楽になるんだけどね
現状じゃ括弧のネスト増えるからとてもじゃないけど書けない
0908デフォルトの名無しさん
垢版 |
2017/12/15(金) 17:30:06.75ID:nGMqwgOn
関数の合成も完結に書きたいしimmutableなデータ構造もネイティブにサポートして欲しいし
そしたらパターンマッチも不可欠だし
関数型への道は険しい
Elm使え
0909デフォルトの名無しさん
垢版 |
2017/12/15(金) 21:51:56.77ID:OK9q/vji
ES提案中のパイプライン演算子は当分奇抜な草案扱いだったが
|>await|>など提案によりStage1の中ではHotになりつつある
あとは?を絡めた関数定義を詰めるのと、Mixin周りの提案が勝負
そこをもう少しでも詰めればStage2まではいけるが、Stage3にはawaitの様なパンチが必要
頑張れ
0910デフォルトの名無しさん
垢版 |
2017/12/15(金) 22:47:15.05ID:L7gVN0RS
>>907
パイプだろうがドットだろうが大差ないだろw
どうせ一行が長くなったら改行するんだから


つまり

foooooooooo()
| baraaaaaaaaaaaa()
| bazzzzzzzzzzzzzzz()

でも

foooooooooo()
.baraaaaaaaaaaaa()
.bazzzzzzzzzzzzzzz()

でも同じだろと

foo() | bar() | baz() でも
foo().bar().baz() でも同じだろと
0911デフォルトの名無しさん
垢版 |
2017/12/15(金) 23:37:27.58ID:WQPs5rl9
>>910
いや、メソッドじゃなくて関数
bazzzzzzzzzzzzzzz(baraaaaaaaaaaaa(foooooooooo()))

foooooooooo()
|> baraaaaaaaaaaaa()
|> bazzzzzzzzzzzzzzz()
じゃ後者がいいやん?

メソッドはクラスインスタンスに対してしか使えないけど、クラスインスタンスだとprototypeの関係でObject.assignなどが使えなくて不変プログラミングがやりにくいからね
0914デフォルトの名無しさん
垢版 |
2017/12/16(土) 00:18:33.91ID:ArLhqftT
A | B | C

たぶん、パイプだと並行処理する

1. Aが最初の1KBを処理する
2. 1の出力を、Bが処理する。同時に、Aは次の1KBを処理
3. 2の出力を、Cが処理する。同時に、A, Bは次の1KBを処理
0917デフォルトの名無しさん
垢版 |
2017/12/22(金) 21:07:59.68ID:dt9jytk4
socket.io 2.0.4で指定したルーム内の全てのソケットもしくは
ソケットIDを取るにはどうしたらいいですか?
socket.io 0.9.6ではio.sockets.clients(ルーム名)で取れていたのですが、
同じようなことを2.0.4でしたいです。
0918デフォルトの名無しさん
垢版 |
2017/12/22(金) 23:11:18.78ID:dt9jytk4
自己解決しました。
socket.ioのgithubに行ったら詳しいドキュメントがありました。
0919デフォルトの名無しさん
垢版 |
2017/12/27(水) 08:03:34.44ID:hw44w6Qj
JavaScriptエンジン向けのポータブルなCommonJS実装ってどこかにないかな。
ピュアJSのモジュールシステムというとRequireJSがあるけど、あっちはいわゆるAMDだよね。
CommonJS使いたいとなるとやっぱりBrowserifyやWebpackとかしかないのかな。
0921デフォルトの名無しさん
垢版 |
2017/12/29(金) 09:12:07.30ID:LK61JUUB
console.logを自前で実装しているんだけど、%cの扱いをどうしようか迷っている。
一応解釈だけして引数を無視するのと%c自体無視するのとどっちがいいかな。
Node.jsは後者みたいだけど。
0922デフォルトの名無しさん
垢版 |
2017/12/29(金) 12:21:26.51ID:LK61JUUB
あぁそうか、Node.jsを前提しているコードで%cを使うことはまずないだろうから
とりあえず前者にしておけばいいんだな。
0923デフォルトの名無しさん
垢版 |
2017/12/31(日) 21:37:45.29ID:9jWP4uLU
クライアントサイドjavascriptのスレってどこにあるんですか?
WebProg板にあるのかと思いきやあっちもサーバサイドだし
0927デフォルトの名無しさん
垢版 |
2018/01/07(日) 11:33:35.99ID:pcvnpBsv
child_process.spawnSync()はプロセスの終了を待ち合わせるけど、workerにはそういう
スレッドのjoin()のように待ち合わせる機能はないのかな。
0928デフォルトの名無しさん
垢版 |
2018/01/10(水) 11:06:47.57ID:AcbVN6ZK
workerってWebWorkerのこと?
それならSharedArrayBufferとAtomics APIでできるよ
ただCPU脆弱性問題で今は無効にされてる
0929デフォルトの名無しさん
垢版 |
2018/01/10(水) 22:10:28.26ID:oFasEgAN
サーバーサイドでそれ無効にする必要ある?
Webブラウザは様々なサイトのコードを実行するから
対策が必要だろうが
サーバーにハッカーのコードを仕込まれたらその時点でもう終わってるじゃん
0930デフォルトの名無しさん
垢版 |
2018/01/10(水) 22:13:57.25ID:NAqv0WmW
>>929
いつの間にサーバーOS=シングルユーザーOSになったんだよw
OSっていうのは複数の人が自分の権限で自分のコードを実行するもんだろ
0932デフォルトの名無しさん
垢版 |
2018/01/10(水) 23:40:19.20ID:ejeCAGvR
他のプロセスのメモリー内容まで簡単に読みに行けちゃうのはメルトダウンだけだよね?
0933デフォルトの名無しさん
垢版 |
2018/01/11(木) 00:49:54.75ID:PrVjW9Sz
http://blog.trendmicro.co.jp/archives/16735 読んだだけの
大雑把な理解だが、

カーネルのメモリを覗けるのがメルトダウン
同じコードを共有した他のプロセスのメモリを覗けるのがスペクター
だと思ってる

メルトダウンはカーネルのメモリを覗けるものだから
カーネルが覗かれないように対策できる

スペクターはアプリが覗かれないように対策する必要があるが
その必要があるのは、例えばブラウザのような同じブラウザ上で
別々の人が作った任意のコードを実行するようなものだから
攻撃の前提を満たすのが難しい
0934デフォルトの名無しさん
垢版 |
2018/01/11(木) 01:45:26.94ID:zDr2JTOQ
>>933
この記事はいいね。

> その必要があるのは、例えばブラウザのような同じブラウザ上で
> 別々の人が作った任意のコードを実行するようなものだから
この場合のコードは実行コードの意味だろうから、つまりは同じDLLをリンクしてたらアウトで、
Linuxならlibstdcやlibmとか、ほぼ全部のアプリが使ってるだろうしアウトじゃね?と思うが。
同じアプリである必要はないはずよ。
0935デフォルトの名無しさん
垢版 |
2018/01/11(木) 09:18:34.65ID:gamfIHe5
Spectreの2つの亜種のうち
1つは同じプロセスの内容だけを覗けて
もう一つは他プロセスの内容を見れるが、スーパーユーザー権限が必要って書いてあるようだけど?
0937デフォルトの名無しさん
垢版 |
2018/01/13(土) 20:38:05.97ID:iJyUFjEF
一度でもasync/awaitを使ってしまうと、もう元には戻れない
楽すぎるぅぅぅぅぅ
0939デフォルトの名無しさん
垢版 |
2018/01/13(土) 22:03:52.60ID:xaNBQnI8
単発非同期にはasync-awaitで十分便利だけど
イベントのようなものを扱うのはまだまだ難しい
まず値が複数あるということ
一応for-awaitはあるけどreturn時に特別な最終処理を行いたい場合は
結局done:trueを見ないといけないから使えない
また、イベントって標準on〜も結構な工夫がされてるけど、
イベントが起きた直後にセットしたハンドラで受け取りたいかどうかっていう問題がある
この辺り最近ずっと個人的に研究してるが容易ではない
0940デフォルトの名無しさん
垢版 |
2018/01/24(水) 19:25:24.68ID:BUPTScBe
最近node.jsを勉強しています。
socket.ioで質問なのですが、何か非同期処理していて接続が切れた場合、再接続したら
その処理完了のメッセージは受け取れるのでしょうか、それとも接続が切れた段階で、キャンセルされますか?
0941デフォルトの名無しさん
垢版 |
2018/01/24(水) 19:35:05.25ID:yxm2qYfd
>接続が切れた

もう少し詳しく
0943デフォルトの名無しさん
垢版 |
2018/01/25(木) 11:23:58.90ID:zPND7U3x
同じ切れると言っても切れてる時間の長さとか再接続でIPも変わるときと変わらない時でも違うんじゃね
0944デフォルトの名無しさん
垢版 |
2018/01/25(木) 11:26:00.59ID:zPND7U3x
TCPかUDPかとかでも違うんだろうけど
socket.ioがどっちかは忘れた
0945デフォルトの名無しさん
垢版 |
2018/01/25(木) 19:29:10.53ID:Jk7QmDIY
socket.ioってクッキーみたいので、セッションID維持してて
切れても安心みたいな感じじゃないんですか?
0947デフォルトの名無しさん
垢版 |
2018/02/01(木) 14:15:55.68ID:zVItOEuq
node.jsって人気ないな〜
解説ブログは古いし、間違ってるし、
こんなんで作ったらバグだらけやん
0948デフォルトの名無しさん
垢版 |
2018/02/01(木) 14:21:50.49ID:XMp5TkVS
はげそれ
ブームは去った
0952デフォルトの名無しさん
垢版 |
2018/02/02(金) 07:24:52.85ID:E+B1ekpI
結局、どう使うべきかわからないというのが問題なんじゃないかな
拡張機能があるけど、個々の機能はわかるけど、うまくピースがはまらないイメージ
0954デフォルトの名無しさん
垢版 |
2018/02/02(金) 19:30:20.18ID:E+B1ekpI
プログラムの設計思想がぴんとこない
非同期で時間のかかることやらせるならsocket.ioは必須なの?
切断したときにどう復旧させるの?
自分は何者で何をしてたかの情報をうまく組み合わせる必要ない?
0956デフォルトの名無しさん
垢版 |
2018/02/03(土) 07:40:05.67ID:dVw1phCl
そこが想像できない、よくわからないから抜け出せないので、使う候補に上がってこない
0957デフォルトの名無しさん
垢版 |
2018/02/03(土) 09:00:51.63ID:C+glEnt3
世界的な事例のほとんどは

バックエンドをマイクロサービス化

その前段のbffにnode.js

これだからモノリシックなシステムには無縁
レス数が950を超えています。1000を超えると書き込みができなくなります。

ニューススポーツなんでも実況