[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 09/04 04:28 / Filesize : 263 KB / Number-of Response : 1023
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【node.js】サーバサイドjavascript 4【io.js】



1 名前:デフォルトの名無しさん mailto:sage [2016/04/11(月) 16:28:34.52 ID:ORuOCkHy.net]
pythonやrubyやPHPと同じ土俵でjavascriptが使えるようになりました。
サーバサイドjavascriptについて語りましょう。

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

io.js の経緯
stackoverflow.com/questions/27309412/what-is-the-difference-between-node-js-and-io-js
javascriptはrubyと比較してもかなり速い
shootout.alioth.debian.org/u32/benchmark.php?test=all&lang=v8&lang2=yarv
基礎から学ぶNode.js
gihyo.jp/dev/serial/01/nodejs
node.jsの概要とアプリケーション開発の準備
gihyo.jp/dev/serial/01/realtimeweb/0002

前スレ
【node.js】サーバサイドjavascript 3【io.js】(c)2ch.net
echo.2ch.net/test/read.cgi/tech/1419673207/
【node.js】サーバサイドjavascript 2【Rhino】
peace.2ch.net/test/read.cgi/tech/1358937029/
【node.js】サーバサイドjavascript【Rhino】
toro.2ch.net/test/read.cgi/tech/1310087535/

449 名前:デフォルトの名無しさん mailto:sage [2017/04/07(金) 02:20:36.15 ID:MrQDMpDH.net]
>>436

promiseは非同期処理の約束手形observableはオブジェクトの値の変化を検知する仕組み。

なんでどっちかしかいらないって話になるのか

450 名前:デフォルトの名無しさん mailto:sage [2017/04/07(金) 02:25:12.94 ID:MrQDMpDH.net]
>>438
Netflixとかなら動画を取り扱うからキャンセルできたほうがいいけど、
他の案件でも必要か?適材適所でしょう。
なんでもストリームとして取り扱うRxは宣言的な記述になるけど、
それが読みやすいかというと、
俺はpromise とasync awaitの方が読みやすい。

451 名前:デフォルトの名無しさん mailto:sage [2017/04/07(金) 02:48:44.21 ID:ZOMGhg3k.net]
RxのObservableと廃案になったObject.observeが混在してる件

452 名前:デフォルトの名無しさん mailto:sage [2017/04/07(金) 02:51:12.64 ID:ZOMGhg3k.net]
多機能があれば単機能はいらない
そんなふうに思って(ry

453 名前:デフォルトの名無しさん mailto:sage [2017/04/07(金) 03:29:00.04 ID:MrQDMpDH.net]
>>441
えっ。違うのかそれ。解ってなかった。すまぬ

454 名前:デフォルトの名無しさん mailto:sage [2017/04/07(金) 03:40:41.83 ID:7WaVyHOC.net]
RxのObservableはnodeのReadable Stream (flowing mode) みたいなもん

455 名前:デフォルトの名無しさん mailto:sage [2017/04/07(金) 07:20:07.56 ID:Bfn8G5Of.net]
someがあればeveryは要らないって話?

456 名前:デフォルトの名無しさん mailto:sage [2017/04/07(金) 09:40:29.94 ID:xCtKbZyH.net]
>>443
分かってなかったのかw
通りで話が噛み合わないわけか。

ObservableはPromiseの改良版

457 名前:デフォルトの名無しさん mailto:sage [2017/04/07(金) 09:44:07.30 ID:xCtKbZyH.net]
>>445
違う。Promiseで十分と思えるような作業であっても
実際は、処理のキャンセルや進捗状況の把握が必要になる。
だからPromiseの仕様では不十分という話



458 名前:デフォルトの名無しさん mailto:sage [2017/04/07(金) 10:06:57.71 ID:NIm6zjXF.net]
必要になるとは限らない
そもそもキャンセルの方法がないものも多い

459 名前:デフォルトの名無しさん mailto:sage [2017/04/07(金) 10:50:07.00 ID:a3tdoMh+.net]
promiseでは全てのケースをカバーできない→正しい
だからpromiseはいらない→間違い

460 名前:デフォルトの名無しさん mailto:sage [2017/04/07(金) 11:38:12.33 ID:MrQDMpDH.net]
でもPromiseだからこそasync awaitを駆使して同期プログラミングっポイ見た目でかけるわけで。
そこはRxではむりでしょ?そもそも宣言的な記述なウリなんだろうけども。
まぁ結局一人で開発だったらドッチもあってもいいけど
複数人プロジェクトだとRxは使いづらいわな。

461 名前:デフォルトの名無しさん mailto:sage [2017/04/07(金) 11:54:59.99 ID:5+HcG4Iv.net]
Observeを束ねて全部処理が終わったら終了処理をしたいんだけど、どうやったらいいんだろう

462 名前:デフォルトの名無しさん mailto:sage [2017/04/07(金) 12:16:24.62 ID:dJwAVcRG.net]
全部zipすれば

463 名前:デフォルトの名無しさん [2017/04/07(金) 12:28:20.19 ID:Fuvg5lKD.net]
Httpリクエスト…Promise
websocket…Observable

464 名前:デフォルトの名無しさん mailto:sage [2017/04/07(金) 13:19:55.32 ID:MrQDMpDH.net]
んでRx使ったやつで良いプロジェクトってあるの?
RxSwift使ってたときは良いプロジェクトが見当たらなくて
汚い設計になってしまった。

465 名前:デフォルトの名無しさん [2017/04/07(金) 13:59:32.72 ID:0MVaqOPa.net]
>>449
これな

466 名前:デフォルトの名無しさん mailto:sage [2017/04/07(金) 14:44:51.56 ID:PRiizMve.net]
要る要らないは個人の考えや開発スタイルによるものだしなぁ

467 名前:デフォルトの名無しさん mailto:sage [2017/04/07(金) 17:45:00.18 ID:7PhLdANq.net]
>>452
やってみる



468 名前:デフォルトの名無しさん mailto:sage [2017/04/07(金) 18:11:21.26 ID:W6kcLwca.net]
つうかキャンセルだけならCancelablePromise案もあるし、
実際はキャンセルが内蔵されていると不都合があるのでCancelToken案のように
仕組みを外部に用意するのがベストだからPromiseは今のままで良いと思うよ

あと因みに例で挙がってたfetchはキャンセル出来る。
キャンセルする必要があるような重たいファイルをDLするときは
Stream使うだろうから、その場合rs側にcancelメソッドがある。

469 名前:デフォルトの名無しさん mailto:sage [2017/04/07(金) 18:13:30.99 ID:W6kcLwca.net]
逆に言うと、もしfetchがプロミスレベルでキャンセルに対応した場合、
こういうStream何かとの兼ね合いはどうするのかって話になる。
自動でrs.cancelが呼ばれるようにするのか、それともclosed例外吐くようにするのか。

やっぱりCancelTokenのように外側から突き刺す形が一番良いよ。

470 名前:デフォルトの名無しさん mailto:sage [2017/04/07(金) 21:38:04.53 ID:M/7BCwbh.net]
なんかの勉強会でcancelable promiseの標準化は頓挫したと聞いた

471 名前:デフォルトの名無しさん mailto:sage [2017/04/07(金) 21:50:33.96 ID:M/7BCwbh.net]
終了してた
https://github.com/tc39/proposal-cancelable-promises

472 名前:デフォルトの名無しさん mailto:sage [2017/04/07(金) 23:33:00.86 ID:xCtKbZyH.net]
>>449
promiseでは全てのケースをカバーできない→正しい
だからpromiseはいらない→そんなこと言ってない

Observableでpromiseのケースをカバーできる→正しい
だからpromiseはいらない→こう言っている

473 名前:デフォルトの名無しさん mailto:sage [2017/04/07(金) 23:33:50.39 ID:xCtKbZyH.net]
>>460
> なんかの勉強会でcancelable promiseの標準化は頓挫したと聞いた

そしてObservableの標準化が進んでいる

474 名前:デフォルトの名無しさん mailto:sage [2017/04/07(金) 23:52:45.97 ID:OQDmCCRm.net]
promiseで十分なケースでわざわざobservable使うメリットあんのかよ

475 名前:デフォルトの名無しさん mailto:sage [2017/04/07(金) 23:55:32.50 ID:xCtKbZyH.net]
>>464
promiseとobservableはインターフェースが違うから互換性がない。
だからライブラリを作るならば両方に対応しなければならない。

またtoPromise()などでobservableからPromiseに変更するなんて
面倒なことをしなければならない場合もある。

promiseとobservableの両方に対応しなくて良いのがメリットだ

476 名前:デフォルトの名無しさん [2017/04/07(金) 23:57:21.56 ID:D3WCz+HD.net]
>>461
そこはキャンセルしてたでしょ!

477 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 00:03:38.77 ID:x261ON0r.net]
>>465
は?
それならobservableなんて対応しなけりゃいいだけじゃねーか
なんで両方に対応しなきゃいけねーんだよ



478 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 00:07:31.07 ID:Ibdd+rg/.net]
>>467
殆どの要件でcancelは必要だから結局Fetch APIみたいに
cancelするための別の仕様が出てくる。

だから最初からobservable一本にしておけばいいという話
急ぎすぎてPromiseを標準化してしまったのは黒歴史
Promiseを使ったFetch APIも黒歴史

479 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 00:15:58.80 ID:cNZiPnVn.net]
>>468
fetchのことしか考えてねーのかよ
fsの非同期apiはキャンセル不可だがこれobservableにする意味あんのかよ

fetchが黒歴史なのは正しい
promiseじゃなくstreamだろってsubstackも突っ込んでた

480 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 00:23:48.13 ID:Ibdd+rg/.net]
> fsの非同期apiはキャンセル不可だがこれobservableにする意味あんのかよ

あると思うけど?

俺は200MBを超えるファイル×数十個を "並列で" サーバーに送

481 名前:Mしたことがあるのだが、
もしメモリに全部読み込んでいたら、マシンによってはメモリ不足になっただろう。

だから特定のチャンクごとに読み込んで送信していたわけだが、当然キャンセルもしたいし
どのファイルが何%処理完了したかの状況も表示したくなる。

そんときはループを使って、チャンクごとにデータを読み取って処理したわけだが、
もしfsがobservableであれば、メモリに全部読み取ることなく
一定のチャンクごとに処理する簡単な方法も提供されただろう。
[]
[ここ壊れてます]

482 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 00:28:43.38 ID:Ibdd+rg/.net]
setTimeoutなんかもclearTimeoutみたいにキャンセルするメソッドがあるし、
時間がかかるからこそ非同期にしているわけで、時間がかかる処理を
キャンセルしたいことがありえないなんてAPIが本当にあるのだろうか?

483 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 00:35:11.20 ID:cNZiPnVn.net]
>>470
それはnodeじゃ昔からstreamでやってるやつだがその話じゃねーよ
今のnodeではcallbsckを取るfs.fstatとかの話だ

484 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 00:37:42.94 ID:Ibdd+rg/.net]
>>472
俺が話をしているのはブラウザ版だ
nodeの話はしてねーよw

485 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 00:38:09.39 ID:cNZiPnVn.net]
>>470
つかてめーnodeやってねーだろ

486 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 00:38:37.44 ID:cNZiPnVn.net]
>>473
スレ違い死ね

487 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 00:38:44.04 ID:Ibdd+rg/.net]
そういやブラウザではFile APIだったなw



488 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 00:39:23.93 ID:i0oWHzgI.net]
>>471
時間がかかる処理をキャンセルじゃなくて、待つのをキャンセルするじゃね?

489 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 00:44:38.31 ID:Ibdd+rg/.net]
>>477
それは言い方の違いでしかないよ

nodeでcallbackを使うやつの話であれば、そもそもなんで
nodeはPromiseを使わなかったのか?の話になるだろ。

それはcallbackを使う方が速いのと、
何度もイベントを発生する必要があるものがあるからだろうな。

つまり、Promiseでは要件に耐えられないから
Promiseではなくcallbackを使ったんだよ。

fs.fstatでは何度もイベントが発生するわけじゃなくても、
何度もイベントが発生することが可能なcallbackを使っている。

それは一度しかイベントが発生しなくてもPromiseではなく
Observableを使ってよいのと同じ考えだ。

490 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 00:49:22.15 ID:cNZiPnVn.net]
>>478
promiseの仕様がいつできたかも知らないのかよ
nodeはその前からあるんだよ
スレ違い野郎は消えろ

491 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 00:51:43.82 ID:Ibdd+rg/.net]
stackoverflow.com/questions/30299613/why-does-nodejs-not-use-promise-for-the-readfile-api

Node’s early iterations used Promises in its nonblocking API. However, in February 2010,
Ryan Dahl made the decision to switch to the now-familiar callback(err, results...)
format, on the grounds that Promises are a higher-level construct that belongs in “userland.”

英語わかるか?
Nodeは最初Promise使っていて、callbackに変えたって書いてあるんだぞ

492 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 00:54:37.05 ID:Ibdd+rg/.net]
(JavaScriptの)Promiseはいつできたんだっけな?
前に調べたんだが忘れたな。

ここを見る限り2009年なのは間違いないが。
wiki.commonjs.org/index.php?title=Promises&oldid=516

493 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 00:55:18.13 ID:cNZiPnVn.net]
そのpromiseはes6のpromiseとは別物だ

494 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 00:56:40.01 ID:cNZiPnVn.net]
nodeでobservableに相当するのはstream
fs.fstatはstreamを使わない
それが答え
以上

495 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 01:03:43.79 ID:Ibdd+rg/.net]
>>482
それは当たり前だが、Promiseを捨てた理由は同じだ

>>483
fs.fstatはPromiseを使わない。
それが答えだろう?w

496 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 01:05:41.12 ID:Ibdd+rg/.net]
> nodeでobservableに相当するのはstream

ちなみに、streamを知らない人に説明しておくと、
streamが使ってるのはPromiseではなくcallback

497 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 01:10:44.04 ID:cNZiPnVn.net]
>>484
promiseを使わない理由がキャンセルできないからじゃないのは分かってんのかよ
システムコールレベルでキャンセルする方法がないのにobservableにするメリットあんのかって問いに答えてねーだろ
nodeは単発にcallback、連発にstreamで使い分けてる
大は小を兼ねるとは限らないんだよ



498 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 01:24:00.13 ID:Ibdd+rg/.net]
システムコールレベルって何の話?

Win32APIとかレベルの話してるの?


独自用語で話すんなよ

499 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 01:25:28.87 ID:Ibdd+rg/.net]
ふむ

Windows Vista での Win32 I/O キャンセル サポート
https://msdn.microsoft.com/ja-jp/library/aa480216.aspx

500 名前:デフォルトの名無しさん [2017/04/08(土) 01:27:17.78 ID:GAoRTfTW.net]
何やこいつ
キャンセルする必要がない単発はPromiseでいいし、キャンセルが必要か連発ならobs使えばいいって話だろ
しゅうきょーせんそーかな?

501 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 01:28:10.51 ID:Ibdd+rg/.net]
単発だからってキャンセルする必要が無いことにはならないんだが?

言ってる意味わかる?

502 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 01:31:42.23 ID:Ibdd+rg/.net]
Observableが得意なのはキャンセルだけじゃなくて
並列処理もなんで、fs.fstatを並列で実行したいときにも
簡単にかけるというメリットも有るな

503 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 01:33:57.12 ID:i0oWHzgI.net]
いくら君らが言い合っても、現実はかわらないでしょ?
今ある仕様がすべてで文句かるなら他の言語つかいなよで終わる話しじゃないの?
生産性のない答えもない事で争って暇すぎるだろ

504 名前:デフォルトの名無しさん [2017/04/08(土) 01:36:49.14 ID:GAoRTfTW.net]
>>490
「キャンセルする必要がない場合は」
よく嫁

505 名前:デフォルトの名無しさん [2017/04/08(土) 01:37:27.20 ID:GAoRTfTW.net]
こいつもしかしてIT速報の管理人か?
転載禁止やぞ。対立煽りはNG

506 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 01:45:22.63 ID:w3FPiolV.net]
スプーンとお玉の関係に似てる。
ジャムをすくうのにお玉を使ったら逆に不便だろ。そこは適切にスプーンを使え。
キャンセル処理がPromiseだと絶対無理というわけでもないし、Rxが必要とも思えないプロジェクトで無理やりRxを使う必要もない。

507 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 01:49:13.35 ID:Ibdd+rg/.net]
>>493
> 「キャンセルする必要がない場合は」

それはまずないだろうねw



508 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 02:25:27.18 ID:FnclMLRN.net]
レスの文体からして前からJSスレに常駐してる荒らしでしょ
コピペブログ管理人もやってたのかは知らんが

509 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 02:31:02.63 ID:hy422I1n.net]
>>487
システムコールってwikipediaにもエントリあるのに
unix/linux系はダメなwindows君か
どうりでダメなわけだ

510 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 02:35:20.51 ID:Ibdd+rg/.net]
>>498
分かってないなw
なんでシステムコールの話がでてくるんだってことだよ。

nodeのAPIと、OSのシステムコールを
一対一で直接結びつける必要はないっつーの

nodeのAPIは単純な一命令でも、内部の実装は
何回もシステムコール呼んだって良いわけだ。

それが分かってないから、お前はシステムコールが
キャンセルできるかどうかなんて言い出したんだろ
こっちは全部お見通しだってーの

511 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 05:35:10.56 ID:iZgQ7lMc.net]
fetchはキャンセルできる必要があるが、
fetchの戻り値をObsevableにするのは駄目。
Obsevableって一様な幾つものデータを受け取るのに向いているので
fetchのように幾つかの段階で全然違うものが帰って来るのには向いていない。

単純に、Responseにabortメソッドを付けるのが良いと思う
勿論途中のStreamをObsevableにするのはとても良いと思うけど、
それを含んだ全体をするのはおかしい。

512 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 05:38:38.21 ID:iZgQ7lMc.net]
というか考えたら分かると思う。
キャンセルしたいのはfetchではなく、DLなのだから。
やっぱりCancelToken以外の解は無いと思うよ。

513 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 17:16:04.09 ID:uEU+oXmi.net]
イベントでいいじゃんかよ、もう

514 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 17:29:52.27 ID:py60arCP.net]
> キャンセルしたいのはfetchではなく、DLなのだから。

fetchはデータ送信もするんだが?
その場合キャンセルしたいのは何だよ

515 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 17:40:38.81 ID:py60arCP.net]
>>500
> 単純に、Responseにabortメソッドを付けるのが良いと思う

fetchの戻り値はpromiseであってresponseではない。

responseはpromiseのthenの時に渡される。
promiseのthenが呼び出されるのはfetchの処理が完了した後。

つまりresponseを取得したとき=fetchし終わった時に
abortするのは遅すぎる

516 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 18:46:58.17 ID:1OsO7EoR.net]
>>499
なにを見通してるのかさっぱり分からんがnodeは低水準のapiを提供するものだ
そうすれば複数のシステムコールを組み合わせた高水準apiはユーザーレベルのライブラリで実現できる
だからfsモジュールは意図的にposixの薄いラッパーになっていてキャンセルはない

517 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 18:50:52.30 ID:1OsO7EoR.net]
>>504
仕様にはstreamが追加されてる
https://fetch.spec.whatwg.org/#streams



518 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 18:56:59.44 ID:py60arCP.net]
>>505
> nodeは低水準のapiを提供するものだ

どこにそんなことが書いてあるのか?

nodeの立場はブラウザと同じだ。
JavaScriptの実行環境だ。

お前の理屈だと、ブラウザは低水準のAPIを提供するものということになる。

519 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 18:58:44.31 ID:py60arCP.net]
>>505
> だからfsモジュールは意図的にposixの薄いラッパーになっていてキャンセルはない

じゃあ、例えば、fs.lstatSync は posixのどの薄いラッパーなのか言ってみ

520 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 19:01:09.86 ID:py60arCP.net]
>>506
> 仕様にはstreamが追加されてる
どっちみち仕様を加えるなら
Observableにした方がいいだろうな。

521 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 19:02:35.33 ID:py60arCP.net]
しかもPOSIXは非同期I/Oをキャンセルする機能あるじゃんwww

https://linuxjm.osdn.jp/html/LDP_man-pages/man3/aio_cancel.3.html
aio_cancel - 完了していない非同期 I/O リクエストをキャンセルする
POSIX.1-2001, POSIX.1-2008.

522 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 19:22:58.68 ID:+j3lf9vK.net]
>>507
https://nodejs.org/api/fs.html
File I/O is provided by simple wrappers around standard POSIX functions.

>>508
lstat

>>510
posix aioはほとんどのosで実装されてないしnodeでもサポートしてない

523 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 19:25:59.41 ID:+j3lf9vK.net]
>>510
細かく言うとposix aioはほとんどのos kernelで実装されてない
gnuがユーザーレベルのライブラリとして実装したものがあるだけ

524 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 19:34:34.87 ID:+j3lf9vK.net]
manだとlstat(2)に対して>>510のaio_xxx(3)なのでシステムコールじゃないことが分かる

525 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 19:36:55.48 ID:py60arCP.net]
>>511
lstatは非同期じゃないぞw

526 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 19:39:34.36 ID:+j3lf9vK.net]
>>504
fetch apiが返すpromiseはfetchが完了してからresolveするわけではない
完了してからresolveするのはres.text()が返すpromise

527 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 19:40:34.49 ID:+j3lf9vK.net]
>>514
>>508のlstatSyncは非同期じゃない



528 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 19:43:59.84 ID:py60arCP.net]
>>516
逆だったなw
fs.lstatの方だ

529 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 19:45:48.32 ID:+j3lf9vK.net]
>>517
lstat

530 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 19:46:03.01 ID:py60arCP.net]
>>515
> fetch apiが返すpromiseはfetchが完了してからresolveするわけではない

完了してからだよ。正確にはレスポンスが返ってきてから、
データの受信が完全に完了してからではない。

でないと、Response.statusが取れるわけがないだろう?

531 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 19:46:40.03 ID:py60arCP.net]
>>518
それではシステムコールにあるPromise相当のものは何?w

532 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 19:51:37.12 ID:+j3lf9vK.net]
>>519
そう、だから完了してからじゃないじゃん
最初のチャンクが届いたらresolveする
「fetchの処理が完了した後」は明らかな間違い

533 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 19:53:33.42 ID:+j3lf9vK.net]
>>520
システムコールにはない
単にワーカースレッドでlstat呼ぶだけ

534 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 19:53:53.72 ID:py60arCP.net]
>>521
Fetchの処理はリクエスト投げてレスポンス戻すところまでだよ。
ダウンロードが終了するまでの話は最初からしてない

で、Fetchのキャンセル(thenが発動する前)はPromiseでできるの?
できないでしょ?
そこに新しい仕様が必要ならObservableを使えば良いわけさ。

535 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 19:54:42.49 ID:py60arCP.net]
>>522
だろう? Promiseを含めて「システムコールの軽いラッパー」と
お前が呼ぶならば、Observableを含めたって「システムの軽いラッパー」になる

536 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 20:03:11.46 ID:0e5YIioE.net]
>>523
fetch apiがpromiseベースでバカなのは何年も前から言われてるし俺も言ってきたからそこに反論する気はない

537 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 20:05:16.72 ID:0e5YIioE.net]
>>524
キャンセルできなくて単発で結果が決まるシステムコールのラッパーにpromiseよりobservableを選ぶメリットは?



538 名前:デフォルトの名無しさん [2017/04/08(土) 20:20:53.33 ID:cXe/TGOq.net]
システムコールとライブラリの違いをわかってないやつがいそうだから、用語をシステムAPIかOSのAPIで統一してくれ

539 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 20:27:37.55 ID:py60arCP.net]
>>526
並列処理がしやすいから

540 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 20:31:19.27 ID:iZgQ7lMc.net]
>>523
何度も説明してるが、キャンセルは必要だが、Observableはそぐわない
CancelTokenのようなものじゃないと実際齟齬が出るし
その流儀に則って真似して使いやすいように色んなAPIを実装していくのは大変

541 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 20:33:09.43 ID:py60arCP.net]
俺がobservableの話で並列処理の話を始めると
すぐにキャンセルの話に変えるやつってなんなんだろうねw
わざとなのかな?

542 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 20:38:17.35 ID:FGB2+VgV.net]
>>528
正しくは並行処理だが常に必要となるわけではない
必要ならpromiseをobservableでラップすればいいだけ
そのために無駄に高機能なapiを土台にするメリットはない
シンプルの上にリッチを乗せることは有意だが逆は無意味だ

543 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 20:40:15.25 ID:py60arCP.net]
> 正しくは並行処理だが常に必要となるわけではない

絶対に必要ないならいらんだろうさ
常に必要となるわけではない=必要な場合もある。
ならば同じやり方でやったほうが楽

544 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 20:49:17.82 ID:FGB2+VgV.net]
長さ1の配列があればスカラ値の変数はいらない

let x=1
let y=2
let z=x+y

これは配列が必要な場合と同じやり方で

let x=[1]
let y=[2]
let z=[x[0]+y[0]]

ってやった方が楽
なるほど

545 名前:デフォルトの名無しさん mailto:sage [2017/04/09(日) 16:42:26.31 ID:4FESG0wM.net]
なるほどじゃねぇよ

546 名前:デフォルトの名無しさん mailto:sage [2017/04/09(日) 17:00:22.44 ID:ZPMPIHcF.net]
Observableだけでなく、jQueryもLodashもそうなんだけど、
配列をスカラのように扱うことができるんだよね。

1と2以上を同一化して処理できる。

例えばquerySelectorAllは配列を返す。$()だとスカラ値を返す
どちらもセレクタから複数の要素を検索しているようだけど、この違いによって
querySelectorAllではループ処理が必要になるが、jQueryではループ処理が不要になる

Promiseも単数だから並列しようと思ったら配列が必要になってループも必要になる
つまり>>533でいう後者の書き方
Observableであれば単数も複数も同じように処理できるから、>>533の前者の書き方で
複数の対象を単数と同じ書き方で並列に処理できる。

547 名前:デフォルトの名無しさん mailto:sage [2017/04/09(日) 18:21:09.53 ID:c0gwQMp6.net]
querySelectorAllが配列を返すなんてとんと知りませんでしたわ



548 名前:デフォルトの名無しさん mailto:sage [2017/04/09(日) 19:39:40.08 ID:FYNHGER+.net]
そもそも「配列」という言葉の定義がない
因みにNodeListは@@iterator対応の予定がずっとある

549 名前:デフォルトの名無しさん mailto:sage [2017/04/09(日) 20:58:23.64 ID:04OXxo7q.net]
jQueryしか使わないゆとりだから下のレイヤーのことは知らないんだろ

550 名前:デフォルトの名無しさん mailto:sage [2017/04/09(日) 21:08:17.95 ID:qkkzIUk4.net]
下層民同士仲良くしなさいよ〜
粛清すっぞ

551 名前:デフォルトの名無しさん mailto:sage [2017/04/10(月) 16:04:40.78 ID:/vWjJFQd.net]
一年に1,2回はtoArrayをどうするかの話題で盛り上がるよね
Array、TypedArray、@@iterator、length、Array.isArrayとか沢山楽しい話できるよね

552 名前:デフォルトの名無しさん mailto:sage [2017/04/11(火) 15:44:57.90 ID:EI2QNfVc.net]
キャンセルトークン方式のプロポーザル
https://github.com/tc39/proposal-cancellation

553 名前:デフォルトの名無しさん mailto:sage [2017/04/11(火) 20:28:11.22 ID:rWanRa9I.net]
>>541

https://azu.github.io/slide-what-is-ecmascript/slide/12.html
Stage 0: Strawman
アイデア

から抜け出したら、もう一回知らせてくれ
せめてStage 3にならなければ評価する価値もない

554 名前:デフォルトの名無しさん mailto:sage [2017/04/11(火) 20:53:27.45 ID:CJtRplzd.net]
stage1のobservableも評価する価値がない
よってこの話題完全終了

555 名前:デフォルトの名無しさん mailto:sage [2017/04/11(火) 20:56:52.33 ID:3Yv+2Fi9.net]
50歩100歩ってやつだな。
差は2倍もあるということだ

556 名前:デフォルトの名無しさん mailto:sage [2017/04/11(火) 21:09:11.09 ID:62uXcToV.net]
デバッグ用にconsole.logで出力を行ってるんだけど、foreverで起動するときはどこにも出力されてないって事でいいのかな?

557 名前:デフォルトの名無しさん mailto:sage [2017/04/11(火) 21:46:41.59 ID:fGKCOXVl.net]
今日追加されたのより一歩進んでたって話にならんよ



558 名前:デフォルトの名無しさん [2017/04/12(水) 12:43:00.43 ID:rqT+n0Ti.net]
>>544
ゴールまで千里の道というオチですね

559 名前:デフォルトの名無しさん mailto:sage [2017/04/12(水) 16:04:44.52 ID:WRJ4LE6o.net]
>>545
Optionsを観ると以下のようになってる。
-o OUTFILE Logs stdout from child script to OUTFILE
-e ERRFILE Logs stderr from child script to ERRFILE

560 名前:デフォルトの名無しさん [2017/04/16(日) 06:10:01.13 ID:JlKTjebd.net]
ln -s -f /dev/null /dev/stdout

561 名前:デフォルトの名無しさん mailto:sage [2017/04/21(金) 22:47:20.35 ID:vwhSF093.net]
Converting circular structure to JSON
at JSON.stringify

自分なりにdeepCopyつもりのコードで
上記エラーが出た場合に、原因なコードを簡単に見つける方法ってどんなのがありますでしょうか?

562 名前:デフォルトの名無しさん mailto:sage [2017/04/22(土) 11:59:52.05 ID:WQjYmpaa.net]
>>550
stackoverflow.com/questions/14962018/detecting-and-fixing-circular-references-in-javascript

563 名前:デフォルトの名無しさん [2017/04/25(火) 16:04:38.46 ID:+ad05VVs.net]
circular structur
原因書いてますやん

564 名前:デフォルトの名無しさん mailto:sage [2017/04/26(水) 14:11:46.04 ID:mOputr8e.net]
>>551
まさにピッタリの解説でした。ありがとうございました。

565 名前:デフォルトの名無しさん mailto:sage [2017/04/28(金) 08:36:18.97 ID:NZ0i2p+n.net]
循環参照を持っていてもちょっと関数噛ましてテーブル2つに変換すればJSONに落とし込むことは可能だよ

566 名前:デフォルトの名無しさん [2017/04/28(金) 12:43:11.19 ID:TC+lQYaW.net]
以下のように表記を統一するクラス(またはデータベース)でありますでしょうか?

'php' => 'PHP' ,
'perl' => 'Perl' ,
'javascript' => 'JavaScript' ,

567 名前:デフォルトの名無しさん mailto:sage [2017/04/28(金) 13:10:12.31 ID:ytJUGaM1.net]
自然言語処理用でいいの最近見たけど忘れた



568 名前:デフォルトの名無しさん [2017/04/28(金) 15:01:07.81 ID:TC+lQYaW.net]
思い出してください w

「自然言語処理 "単語の正規化" 」でググってみましたがズバリ思っているようなのはヒットしませんでした。
どなたか是非!

569 名前:デフォルトの名無しさん mailto:sage [2017/04/29(土) 05:10:42.30 ID:GfKuDHiR.net]
つうか全部小文字の単語を直したいだけの辞書なら
通常の固有名詞辞書にちょっと手を加えればいいだけじゃん

570 名前: mailto:sage [2017/04/29(土) 11:53:18.38 ID:R/nsoadB.net]
freetaggerとか昔使ったことあるけど、javaScriptなんかの表記の統一は辛かったような。
isDisabledのiはどうするのとか、結局プロジェクト向けのスクリプト書いた気がする。

571 名前:デフォルトの名無しさん mailto:sage [2017/04/29(土) 12:10:57.72 ID:xHNM2Zad.net]
>>559
結局はそうだよな
完全な答えがあるものじゃないし

572 名前:デフォルトの名無しさん mailto:sage [2017/05/03(水) 23:37:41.27 ID:jNZhewdQ.net]
package.jsonの"scripts"に書いたコマンドをnpm runで実行する際はnode_modules/.bniがPATHに
追加されますが、これ以外に任意のディレクトリをPATHに追加する方法ってあるでしょうか。

573 名前:デフォルトの名無しさん mailto:sage [2017/05/03(水) 23:44:19.89 ID:/FJiuNZS.net]
実行するコマンドの前で設定するとか

574 名前:デフォルトの名無しさん [2017/05/04(木) 01:58:16.57 ID:arHoxXIF.net]
windowsだからpythonのpip以上にnpm厄介だな

575 名前:561 mailto:sage [2017/05/04(木) 11:09:36.82 ID:l8/ufUYV.net]
ありがとうございます。でもwindowsだとうまくいかないなぁ。

"somecommand": "set PATH=%PATH%;<パス> && <コマンド>"
#<コマンド>は内部でPATH環境変数を使用するスクリプトで、これ自体にはPATHが通っている。

&&の両側のコマンドが同時に立ち上がるんだから当然と言えば当然か。
でもコマンドプロンプトで順次実行する&に変えても結果は同じだった。
bashのexportみたいなのが使えればいいんだけど。

576 名前:デフォルトの名無しさん mailto:sage [2017/05/04(木) 11:15:14.24 ID:rRUt3/Oc.net]
めんどくせぇなぁ、
そのためのnpmライブラリでもあんだろ

577 名前:デフォルトの名無しさん mailto:sage [2017/05/04(木) 14:13:58.13 ID:PLZ28pn/.net]
cross-envが定番
https://www.npmjs.com/package/cross-env



578 名前:デフォルトの名無しさん mailto:sage [2017/05/04(木) 14:31:06.73 ID:lWCYxa45.net]
他にnpm-run-allとかrimrafとかあればwinでも動くnpm scriptsが書ける

579 名前:561 mailto:sage [2017/05/04(木) 15:13:22.65 ID:l8/ufUYV.net]
ありがとうございます。cross-envでいけました。

580 名前:デフォルトの名無しさん mailto:sage [2017/05/06(土) 06:40:04.53 ID:jJg9RTT4.net]
カオスですね

581 名前:デフォルトの名無しさん [2017/05/08(月) 19:19:22.70 ID:Eylo3eTX.net]
node.jsでimportを使うと


582 名前:SyntaxError: Unexpected token import
ってなるんですが、importに対応したnode.jsはまだ出てないのでしょうか?
[]
[ここ壊れてます]

583 名前:デフォルトの名無しさん mailto:sage [2017/05/08(月) 19:53:32.68 ID:zqCx33pk.net]
質問する前にぐぐれ
sakamock.hatenablog.com/entry/2016/02/03/091623
yosuke-furukawa.hatenablog.com/entry/2016/05/10/111102
va2577.github.io/post/18/

584 名前:デフォルトの名無しさん [2017/05/09(火) 01:01:42.73 ID:VdFod0fE.net]
>>571
importの使い方を聞いていません
babelとwebpackでimport書いてるので使い方は知ってます
node.js自体がimportを実装しているのかを聞いています

585 名前:デフォルトの名無しさん mailto:sage [2017/05/09(火) 06:20:18.78 ID:SYbF5UtF.net]
してないよ

586 名前:デフォルトの名無しさん mailto:sage [2017/05/09(火) 06:58:49.50 ID:i7CM3KKL.net]
*.mjsからはimport出来るようにしようぜ
ってのを結構前に読んだ気がするけど、まだ実装されたないんか?

587 名前:デフォルトの名無しさん mailto:sage [2017/05/09(火) 08:05:18.10 ID:SYbF5UtF.net]
実装どころか提案文書はドラフトのままだよ
(技術的検証が済んでACCEPTされないと実装に進まない)
検証だけであと1年以上掛かるってさ

なお拡張子(*.mjs)でES moduleかどうか判別する手法は
考え得る限り最低の糞という判断が下されたので無くなる



588 名前:デフォルトの名無しさん mailto:sage [2017/05/09(火) 14:19:15.46 ID:QH2cY82P.net]
そこはESの管轄外だよ
NodeがWebと合わせる必要もない

589 名前:デフォルトの名無しさん mailto:sage [2017/05/09(火) 14:46:23.14 ID:mIqB5B7Y.net]
相互運用性は必要

590 名前:デフォルトの名無しさん [2017/05/09(火) 14:48:00.66 ID:bmQioI1H.net]
いやnodeってv8使ってる立場だから何もできんでしょ
間違ってる?

591 名前:デフォルトの名無しさん mailto:sage [2017/05/09(火) 15:09:01.72 ID:UecSchXq.net]
v8はネットワークもファイルシステムも持ってないからimportは環境(ブラウザやnode)に丸投げでしょ

592 名前:デフォルトの名無しさん [2017/05/09(火) 15:45:52.73 ID:bmQioI1H.net]
なるほど

593 名前:デフォルトの名無しさん [2017/05/09(火) 16:25:22.62 ID:yROPnHQF.net]
Buffer.byteLengthをブラウザ側でも利用できるように移植して欲しい
今時バイトでカウントするにも自力でコード書かないといけないのは無駄すぎる

594 名前:デフォルトの名無しさん mailto:sage [2017/05/09(火) 21:56:24.65 ID:AJpeMRYn.net]
importはJavaScript(EcmaScript)の仕様範疇の中に入れてもいいが、
ブラウザで動かすJavaScriptにおいて、
importはビルド時に解決する問題になるんだよね。

なぜならファイルのアクセス数が増えてパフォーマンス低下につながるから。
JavaScriptファイルを結合することでパフォーマンスをあげるという目的があるから
結合させずに動いたとしても、ビルド時に結合させるという手段は今後も続く。

ウェブサーバーのプラグインでJavaScriptファイルをimport定義に従って
結合するという仕組みができるかもしれないがこれもビルドを配信時に行うってだけ

595 名前:デフォルトの名無しさん mailto:sage [2017/05/09(火) 22:01:42.74 ID:AJpeMRYn.net]
>>581
ブラウザ側で実装する or 自力でコードを書く

の中間に、ライブラリを使うという方法があるよ。
この方法を使えば、既存のブラウザでも動くし
自力でコードを書くムダもない

自力でコードを書けるたぐいのものなら、ブラウザに移植してほしい理由を言うとしたら
「ネイティブで実装されていれば速い可能性がある」であるべきだろう

596 名前: mailto:sage [2017/05/09(火) 23:27:53.20 ID:jm0lp/yb.net]
>>582
すごく巨大なファイルへのアクセス数でパフォーマンス低下するか、
CDNで配信されてて、もうすでにブラウザキャッシュに存在するかだと、後者の方が速いと思うけど。

597 名前:デフォルトの名無しさん mailto:sage [2017/05/09(火) 23:38:56.70 ID:AJpeMRYn.net]
すごく巨大なファイルもCDNで配信されブラウザにキャッシュされるだろw



598 名前:デフォルトの名無しさん mailto:sage [2017/05/09(火) 23:45:41.79 ID:UecSchXq.net]
お前らhttp/2知らんのか

599 名前:デフォルトの名無しさん mailto:sage [2017/05/10(水) 02:35:14.26 ID:APsKv2KG.net]
>>586
コネクションが再利用されるとしても、
ファイル要求は別に行われるだろうが

600 名前:デフォルトの名無しさん mailto:sage [2017/05/10(水) 02:43:19.47 ID:dOAvi++p.net]
要求されるまでもなくプッシュできる
キャッシュとの絡みで今んとこ絵にかいた餅だが

601 名前:デフォルトの名無しさん mailto:sage [2017/05/10(水) 06:37:42.31 ID:p6BdxMwR.net]
ふーん
そういう妄想は同人誌即売会で売ってるといいよ

602 名前:デフォルトの名無しさん mailto:sage [2017/05/10(水) 11:21:57.19 ID:3E/iyxQi.net]
それよりもminifyが未だにes2015を正式対応してないの早くなんとかしてほしい。ブラウザがes2015サポートしてても結局es5で吐き出してる

603 名前:デフォルトの名無しさん mailto:sage [2017/05/10(水) 22:20:22.50 ID:f7GpB8cT.net]
babel使えば?
babel自体にminify入ったろ?

604 名前:デフォルトの名無しさん mailto:sage [2017/05/10(水) 22:27:47.55 ID:3E/iyxQi.net]
>>591
おー。愚痴ってみるもんですな。
typescript使ってたんだけどbabel挟んでみようかな。

605 名前:デフォルトの名無しさん mailto:sage [2017/05/10(水) 22:31:57.68 ID:f7GpB8cT.net]
typescript使ってるならビルドした後minifyすればいいだろ

606 名前:デフォルトの名無しさん mailto:sage [2017/05/10(水) 23:04:23.70 ID:3E/iyxQi.net]
>>593
そう言ってるんだよ

607 名前:デフォルトの名無しさん [2017/05/11(木) 09:14:44.78 ID:2k4cBKy7.net]
jsでデスクトップアプリケーションが作



608 名前:ャできるelectronでソフトを作りたいのですが、
http通信のためのモジュールであるrequestモジュールを、main processからrequireするといろんなプロパティを持ったオブジェクトが返ってきてその中の関数でhttp通算できるのですが、
renderer processからrequireするとただのrequestという名前の関数オブジェクトが返されるだけで使い物にならないです。
pc通信でrenderer processからmain processにhttp通信を代行してもらうしかhttp通信をrenderer processで扱うための方法はないですか?
[]
[ここ壊れてます]

609 名前:デフォルトの名無しさん [2017/05/11(木) 09:15:08.72 ID:2k4cBKy7.net]
x pc通信
o ipc通信

610 名前:デフォルトの名無しさん [2017/05/11(木) 15:47:14.50 ID:5AwxqDXW.net]
>>595
renderプロセスはブラウザと同じなのでfetch使えばいいですよ

611 名前:デフォルトの名無しさん mailto:sage [2017/05/12(金) 10:36:16.44 ID:0XJDwknN.net]
>>582
なんかごちゃごちゃ言ってる間にブラウザがモジュールサポートし始めたで
https://medium.com/dev-channel/es6-modules-in-chrome-canary-m60-ba588dfb8ab7

612 名前:デフォルトの名無しさん mailto:sage [2017/05/12(金) 21:53:20.88 ID:RdNTmSbh.net]
>>598
そりゃサポートはされるだろ
結合しないと遅いってだけなんだから

613 名前:デフォルトの名無しさん mailto:sage [2017/05/12(金) 22:55:56.28 ID:zfFA8MYk.net]
>>599
モジュール化するほうがファイル増えて遅くなりそうなんだが

614 名前:デフォルトの名無しさん mailto:sage [2017/05/13(土) 00:08:46.87 ID:f5G7qLua.net]
>>600
だからwebpackでビルドして結合するんだよ

615 名前:デフォルトの名無しさん mailto:sage [2017/05/13(土) 09:42:16.53 ID:7pndE6Ym.net]
>>582
> ウェブサーバーのプラグインでJavaScriptファイルをimport定義に従って
> 結合するという仕組みができるかもしれないがこれもビルドを配信時に行うってだけ

事実誤認も甚だしい
パックする仕組みは配信からの要求で考えられた
それをトランスパイルとかいう歪な仕組みを進めている連中が取り込んだだけ
逆だね

616 名前:デフォルトの名無しさん mailto:sage [2017/05/13(土) 17:57:39.66 ID:DoozTjZk.net]
>>602
うん
だからhttp配信という構図だとパックする必要があるからimportがあまり意味がないというのは間違ってないとおもうんだが

617 名前:デフォルトの名無しさん mailto:sage [2017/05/13(土) 22:06:37.81 ID:qm49A/r9.net]
馬鹿に何を言っても無駄っぽいよ
ほどほどに



618 名前:デフォルトの名無しさん mailto:sage [2017/05/14(日) 08:08:37.33 ID:GJiVsoER.net]
正しいか正しくないかでなく
自分が最後に喋って締めないと気が済まない人種というのがいるのだ
マウンティング症候群を併発していることが多い

ようするにキチガイ

619 名前:デフォルトの名無しさん mailto:sage [2017/05/14(日) 08:58:24.04 ID:Yfbw1s8U.net]
特徴的なレス引用と改行だから覚えとくといいよ

620 名前:デフォルトの名無しさん [2017/05/14(日) 12:02:12.51 ID:RQAIFfqK.net]
>>605
それって相手もそうじゃないとそんな状態が発生しなくね
どっちかが最後にレスしなくてもいいと思ってるならいつまでも会話続かなくね

621 名前:デフォルトの名無しさん [2017/05/15(月) 16:08:20.12 ID:K4VlRHcT.net]
>>607
自分はするけど相手がするのは許せない人なんでしょ

622 名前:デフォルトの名無しさん [2017/05/15(月) 18:54:23.23 ID:ejKo8zg4.net]
609

623 名前:デフォルトの名無しさん mailto:sage [2017/05/26(金) 17:26:28.49 ID:/lAAh6KQ.net]
初めてインストールする初心者なんですが、インストールしようとすると
下記エラーが出てインストール出来ません。

There is a problem with this Windows Installer package.
A DLL required for this install to complete could not be run.
Contact your support personnel or package vendor.

色々ググってみましたが解決方法がさっぱりです。
どなたか対処方法をご存じでしょうか?
ご意見を戴ければ幸いです。

624 名前:デフォルトの名無しさん [2017/05/26(金) 19:28:40.56 ID:GnitEmTF.net]
OSを入れなおすと治るはず

625 名前:デフォルトの名無しさん [2017/05/26(金) 19:31:51.91 ID:3n6eNBdq.net]
zip版でやったら?

626 名前:デフォルトの名無しさん mailto:sage [2017/05/26(金) 19:53:10.09 ID:IXNjZ2pR.net]
検索すると解決法がでて来てるじゃん
それをやったけど解決しないというのか?
それとも検索する能力がないのか?
はっきりしろ

627 名前:デフォルトの名無しさん mailto:sage [2017/05/26(金) 19:56:45.81 ID:r0MrR931.net]
英語読めないバカなんだろ



628 名前:デフォルトの名無しさん mailto:sage [2017/05/26(金) 20:56:17.06 ID:/lAAh6KQ.net]
>>614

その通りです。英語どころか日本語にすら不自由しているバカです。
よろしければ解決方法をお教え戴けないでしょうか?

629 名前:デフォルトの名無しさん mailto:sage [2017/05/27(土) 02:29:43.21 ID:0Q3Lyy5A.net]
>>615
win版はとにかく問題がおおくMSが公式にインストール順序公開してたぞ
ぐぐってみろ

630 名前:デフォルトの名無しさん [2017/05/31(水) 17:32:42.62 ID:ZPfn9esu.net]
Node v8.0.0 リリース
https://nodejs.org/en/blog/release/v8.0.0/

ついに来たか!

631 名前:デフォルトの名無しさん [2017/05/31(水) 18:12:03.95 ID:buo/Bij8.net]
>>617
npm5も
yarnよりは遅いけど高速化&lockファイル追加

632 名前:デフォルトの名無しさん mailto:sage [2017/05/31(水) 19:21:31.62 ID:JH+W+dlz.net]
つーかむしろリリース早くないか?
どうしちゃったの最近

633 名前:デフォルトの名無しさん mailto:sage [2017/06/01(木) 06:22:15.78 ID:YAAERIty.net]
野良ライブラリが挙動不安定になりそうだな。

634 名前:デフォルトの名無しさん mailto:sage [2017/06/04(日) 02:24:58.72 ID:5FvMCxhk.net]
いやん、6にしなきゃなぁと思ってたら8がでちゃったよ

635 名前:デフォルトの名無しさん mailto:sage [2017/06/04(日) 08:28:21.48 ID:Ya2UW7fS.net]
おれ4のまま使ってるんたけど6とか8は何が違うの?

636 名前:デフォルトの名無しさん [2017/06/04(日) 13:22:39.42 ID:x+PHGK1n.net]
スーパーサイヤ人だとフリーザしか倒せないけど
スーパーサイヤ人2ならセルまでなら倒せるぐらい

637 名前:デフォルトの名無しさん mailto:sage [2017/06/04(日) 15:13:46.93 ID:cUbmknIq.net]
>>623
具体的に何がかわるんだろう?



638 名前:デフォルトの名無しさん mailto:sage [2017/06/04(日) 15:26:15.30 ID:QmvXFzFq.net]
主にasyn/awaitなどのes新機能
kangax.github.io/compat-table/es2016plus/

639 名前:デフォルトの名無しさん mailto:sage [2017/06/04(日) 15:31:35.11 ID:cUbmknIq.net]
>>625
なるほど
ところで下位互換は保たれてるんだろうか?

640 名前:デフォルトの名無しさん mailto:sage [2017/06/04(日) 15:44:01.38 ID:075YxDUD.net]
semver準拠でメジャーバージョンアップだからブレーキングチェンジがあるということ
些細なものばかりに見えるけど
https://github.com/nodejs/node/blob/master/doc/changelogs/CHANGELOG_V8.md#8.0.0

641 名前:デフォルトの名無しさん [2017/06/04(日) 16:17:05.52 ID:qUWZGkRh.net]
async/awaitとかの大抵の機能はnodeのバージョンアップしなくてもbabelとかtypescript使えば古いバージョンでも使えるよ

642 名前:デフォルトの名無しさん mailto:sage [2017/06/04(日) 18:39:31.69 ID:+x9cOwwe.net]
>>628
これ。typescript使ってるから正直どうでもいい。

643 名前:デフォルトの名無しさん [2017/06/04(日) 22:48:20.08 ID:qUWZGkRh.net]
>>629
ts2.1でtarget es5でも使えるようになったしな

644 名前:デフォルトの名無しさん mailto:sage [2017/06/05(月) 21:13:25.69 ID:nBMIbdLx.net]
nodeって起動するだけでメモリ相当食うから、バージョンアップでさらに増えてないかが気になる
安いプランのVPSだとメモリ1Gとかだから

645 名前:デフォルトの名無しさん mailto:sage [2017/06/05(月) 22:36:15.71 ID:hT8phHO4.net]
>>631
node起動するだけなら7MBしか食ってなかったぞ?

646 名前:デフォルトの名無しさん mailto:sage [2017/06/06(火) 09:07:00.80 ID:rjyabpco.net]
>>632
v8が起動するんだからそんな少ないわけないだろw

647 名前:デフォルトの名無しさん mailto:sage [2017/06/06(火) 09:39:06.61 ID:dRy+c6tT.net]
>>633
こんな感じのようだが?

qiita.com/shouta-dev/items/09d7055329710684d9c7

> process.memoryUsage()
{ rss: 9019392,
heapTotal: 5115392,
heapUsed: 2658096 }



648 名前:デフォルトの名無しさん mailto:sage [2017/06/06(火) 12:19:41.83 ID:e4Yt3Epi.net]
そりゃnode.js内のメモリ消費量でねーの
ランタイム内のプロセスと実行環境自体のプロセスを混同させるような>>634もアレだがな
だからWeb屋は

649 名前:デフォルトの名無しさん mailto:sage [2017/06/06(火) 13:46:28.87 ID:rjyabpco.net]
ちょっとしたサービス作って待ち受けするだけで普通に数百MBは食うぞ

650 名前:デフォルトの名無しさん mailto:sage [2017/06/06(火) 13:56:30.47 ID:yrQvF/57.net]
ちょっとしたサービスなら200MB台で済んでる気が

651 名前:デフォルトの名無しさん mailto:sage [2017/06/06(火) 13:59:17.60 ID:rjyabpco.net]
>>637
うん、実際そんなもんだよ
サービスによりけりだけど単位は百MBにはなるね

652 名前:デフォルトの名無しさん [2017/06/06(火) 15:37:19.98 ID:CUcBhzlW.net]
えメモリ500MBのvpsじゃキツいのかよ!

653 名前:デフォルトの名無しさん mailto:sage [2017/06/06(火) 16:38:33.57 ID:rjyabpco.net]
>>639
nodeやるなら512は実用的じゃないと思う
ssdならスワップ早いからなんとかいけるかもしれんが最低でも1GBは欲しい

654 名前:デフォルトの名無しさん mailto:sage [2017/06/06(火) 17:48:28.25 ID:RW5d4zA8.net]
>>640
node起動するだけなら7MBしか食ってなかったぞ?

655 名前:デフォルトの名無しさん [2017/06/06(火) 17:53:37.43 ID:Q/vepSQ/.net]
nodeは依存関係の関係でアホみたいにモジュールロードあるからね

656 名前:デフォルトの名無しさん mailto:sage [2017/06/06(火) 22:49:25.44 ID:dRy+c6tT.net]
>>641
条件は「nodeを起動するだけ」なんだからその程度だろうね。

>>642
そりゃexpressとか動かせばその分のメモリ食うさ
でもそれはrailsとかでも同じなわけで、なんのモジュールをロードするかとか
言ってない上、nodeを起動するだけのメモリ使用量しかわかるわけがない

657 名前:デフォルトの名無しさん mailto:sage [2017/06/06(火) 23:48:02.40 ID:rexPHFK5.net]
>>643
バカは黙ってた方がいいとおもう



658 名前:デフォルトの名無しさん mailto:sage [2017/06/06(火) 23:52:26.78 ID:uLFYe46X.net]
>>644
何も言い返せないなら黙っていたほうが良い

659 名前:デフォルトの名無しさん mailto:sage [2017/06/07(水) 00:17:35.99 ID:uxrwudqM.net]
7MB君ってほんとうにおめでたい脳味噌してるんだな

660 名前:デフォルトの名無しさん mailto:sage [2017/06/07(水) 00:20:57.96 ID:Xdd0wH5l.net]
>>643
socket.ioのみの簡単なサービスですら200M越えるんだが?
君はどうやって使用メモリを調べてるのかな?ん?
linuxコマンドでも書いてごらん

661 名前:デフォルトの名無しさん mailto:sage [2017/06/07(水) 00:22:10.32 ID:c02yQ3lM.net]
>>631の文脈からして何らかのサーバー立てるんだからnode単体の話をするのは空気読めてないよね

662 名前:デフォルトの名無しさん mailto:sage [2017/06/07(水) 00:27:56.94 ID:Xdd0wH5l.net]
>>648
おまえはVPS借りてnode動かすのに何のサーバーもたてないつもりかな?んー?
で?
検証用のコードと7MBの確認コマンド公開まだかな?

663 名前:デフォルトの名無しさん mailto:sage [2017/06/07(水) 00:31:58.18 ID:Xdd0wH5l.net]
649はレス相手間違えた
この期に及んでnode単体という屁理屈で逃げてるやつは回答まだかな?

664 名前:デフォルトの名無しさん mailto:sage [2017/06/07(水) 00:32:13.23 ID:kUtim7jQ.net]
>>647
たった5行でWebサーバーが書ける
engineer.recruit-lifestyle.co.jp/techblog/2015-06-22-node1/

httpモジュールを使っている分、nodeだけのメモリ使用量ではないが、
ps uのRSSの値は26000KB、つまり26MBだが?

665 名前:デフォルトの名無しさん mailto:sage [2017/06/07(水) 00:33:21.79 ID:kUtim7jQ.net]
>>649
> おまえはVPS借りてnode動かすのに何のサーバーもたてないつもりかな?んー?

サーバーたてなくてもコマンド実行するという使い方もあるだろ?

666 名前:デフォルトの名無しさん mailto:sage [2017/06/07(水) 00:46:45.23 ID:kUtim7jQ.net]
> nodeって起動するだけでメモリ相当食うから、バージョンアップでさらに増えてないかが気になる
> 安いプランのVPSだとメモリ1Gとかだから

>>631の文脈から言って、メモリを相当食う何かを動かしているのだろう。
だがそれはnodeの使用量ではなく、モジュールの使用量がほとんど。
nodeのバージョンアップでメモリ使用量が増えたとしても
大部分のモジュールの使用量は変わらないので、気にするレベルにはならない。

667 名前:デフォルトの名無しさん mailto:sage [2017/06/07(水) 01:45:14.18 ID:GBlW6tcD.net]
メモリの使用量を抑えようと思ったら何を使うのが一番いいんだろうな。
やっぱgoとか?



668 名前:デフォルトの名無しさん mailto:sage [2017/06/07(水) 05:15:29.36 ID:H4RzZJ5B.net]
c

669 名前:デフォルトの名無しさん [2017/06/07(水) 14:14:41.23 ID:Kk4r5o3h.net]
Cは現実的じゃない
Goでおk
それかRust

670 名前:デフォルトの名無しさん mailto:sage [2017/06/07(水) 18:49:24.55 ID:GBlW6tcD.net]
間を取ってobjc

671 名前:デフォルトの名無しさん mailto:sage [2017/06/07(水) 18:51:47.29 ID:GBlW6tcD.net]
v8ってandroidでも動くようにしてるんだよね。新しいバージョンのほうが省メモリの可能性ないかな。

android goとか出してるわけだし

672 名前:デフォルトの名無しさん mailto:sage [2017/06/07(水) 21:06:02.29 ID:Q5pKLWbH.net]
v8のignitionは省メモリ、スモールフットプリントのためだから可能性は十分よ

673 名前:デフォルトの名無しさん mailto:sage [2017/06/07(水) 22:03:21.25 ID:kUtim7jQ.net]
結局逃げちまってたかw

674 名前:デフォルトの名無しさん [2017/06/07(水) 22:28:48.05 ID:Kk4r5o3h.net]
v8がiosで動けばな

675 名前:デフォルトの名無しさん mailto:sage [2017/06/08(木) 13:07:07.77 ID:oPuedIYN.net]
久々に延びてるから良い話題期待したもれが間違ってたし

676 名前:デフォルトの名無しさん mailto:sage [2017/06/10(土) 23:18:03.35 ID:c4FhnErI.net]
>>661
v8じゃないけどnode.jsなら
www.janeasystems.com/blog/node-js-meets-ios/

677 名前:デフォルトの名無しさん [2017/06/13(火) 13:54:50.94 ID:ohFJ/OWS.net]
selenium使ってるんだけどnodeだとすんごい使いづらいな
他はpythonしか知らないけど



678 名前:デフォルトの名無しさん mailto:sage [2017/06/15(木) 14:45:14.68 ID:p0Tdw73d.net]
中学生でもランサム作ってるんだから
それくらいがんがれ

679 名前:デフォルトの名無しさん [2017/06/21(水) 08:58:52.16 ID:E+Sq/aqi.net]
Windows10のユーザーフォルダでnpmにてnode-notifierと言うライブラリをインストールしたのですが
ユーザーフォルダ以外でnode-notifierを呼び出しても見つからずにエラーが出ます。

これを解決するにはWinの環境変数でPATHを通さないとダメなのでしょうか?
それとも呼び出し時に何か指定すれば良いのでしょうか?

680 名前:デフォルトの名無しさん mailto:sage [2017/06/21(水) 10:18:32.72 ID:A4qiE8Ip.net]
>>666
グローバルインストールっのがあるんじゃ?

681 名前:デフォルトの名無しさん [2017/06/23(金) 10:29:44.77 ID:0OdP20aK.net]
>>666
-g

682 名前:デフォルトの名無しさん mailto:sage [2017/06/28(水) 10:06:32.62 ID:+O8L6XqQ.net]
366 :nobodyさん 2017/05/29(月) 16:07:39.16 ID:6v4UcGhE
今回の民法改正、ソフトウェア受託開発の場合、(検収後ではなく)バグ発見後1年瑕疵担保責任があるということで、地獄かよ、と思ったが、
元々問題が起きがちな受託案件がビジネス的に成立しなくなることで強制的に業界再編につながるなら良いことかもと思うようになった。
一部で地獄を見ても。
https://twitter.com/yukihiro_matz/status/869061879389343744

367 :nobodyさん 2017/05/29(月) 16:28:06.55 ID:6v4UcGhE
ニュース - 改正民法が成立、「瑕疵担保責任」などシステム開発契約に影響大:ITpro
b.hatena.ne.jp/entry/itpro.nikkeibp.co.jp/atcl/news/17/052601508/

372 :nobodyさん2017/05/29(月) 19:10:37.12 ID:???
Railsでシステム作って納品する

Railsはマイナー、メジャーのアップデートが半年以内に必ずある

客がアップデートする。アップデートによるエラーやバグ、動作の不具合に気づく

気づいてから1年以内に通知すれば、5年間無料保証ゲット

つまりRailsがアップデートするたびに、無償の修正作業を発生するということかな

376 :nobodyさん2017/05/30(火) 09:20:20.09 ID:L5po86sS
>>378>>379>>375
客が瑕疵担保責任法の法改正を知ってくると思うから、今後5年無償保証をお願いされるだろう
営業がそれでも仕事を取ってこれるか?たぶん無理だろう。無限の直していたら赤字になる。
こういう保守に弱い言語、ころころ仕様が変わる言語は仕事として発生しなくなってくる。
これは変わり目だ。お前らも早く逃げたほうがいいぞ。RubyやPHPなど動的言語は確実に廃れる。
保守に強い言語のみ生き残れる。

683 名前:デフォルトの名無しさん mailto:sage [2017/06/28(水) 10:07:07.91 ID:+O8L6XqQ.net]
瑕疵担保責任(かしたんぽせきにん)

瑕疵担保責任のポイント

民法改正で事実上期限が「無制限」になった
バグや設計のミスなどは、瑕疵担保責任
納品物に不具合があれば損害賠償を請求される可能性もある
不具合を指摘されたらすぐに行動をとるべし
軽微なミスでも先延ばししない

www.atmarkit.co.jp/ait/articles/1706/26/news014.html
itpro.nikkeibp.co.jp/atcl/news/17/052601508/?rt=nocnt

改正法では欠陥に気付いてから1年以内にITベンダーに通知すれば、
通知後5年以内は修正や報酬の減額などを求められるとしている

全ベンダーが泣いた民法改正案を解説しよう その1
www.atmarkit.co.jp/ait/articles/1609/14/news009.html
www.atmarkit.co.jp/ait/articles/1609/14/news009_2.html
www.atmarkit.co.jp/ait/articles/1609/14/news009_3.html

ポイント1:修補や損害賠償、契約解除の期限がなくなる

従来あった「瑕疵担保期間は引き渡しから1年」という考えはなくなる。
条文にある通り、注文者は成果物が契約の目的に適合しないことを発見したら、
その「発見したときから1年以内」ならさまざまな請求ができる。発見が10年後なら、
11年後まで請求可能なのだ。

もっとも、現実のユーザーとベンダーの関係でも、たとえ契約書に「瑕疵担保責任期間は納品から1年と」明記されていても、
「2年目以降は不具合の修正に対応しない」と主張するベンダーはまれだ。多くの場合は、納品から何年たっても、
バグが見つかればユーザーのところに飛んで行き、無償で改修するだろう。

684 名前:デフォルトの名無しさん mailto:sage [2017/06/28(水) 11:55:35.82 ID:6M+2cmcB.net]
そのぶん金取るだけだよな
そんな主張もできない弱小は存在価値ないから他に吸収された方がいい

685 名前:デフォルトの名無しさん [2017/06/28(水) 16:29:31.80 ID:7uiFkJf0.net]
>>671
マルチに反応するな

686 名前:デフォルトの名無しさん mailto:sage [2017/06/28(水) 21:25:29.27 ID:V4ji+kX8.net]
>>670
「2年目以降は不具合の修正に対応しない」と主張するベンダーはまれだ。多くの場合は、納品から何年たっても、
バグが見つかればユーザーのところに飛んで行き、有償で改修するだろう。

の間違いでは?
普通は不具合の修正に有償で対応する方を選ぶでしょ?

687 名前:デフォルトの名無しさん [2017/06/29(木) 03:44:27.70 ID:KULunYvr.net]
app.jsみたいなフレームワーク固有のファイルって
どんな役割なのかもよくわからんし
何を書けばいいのかもわからないしすげえ苦手だ。
最低限何を書けば動くの?



688 名前:デフォルトの名無しさん mailto:sage [2017/06/29(木) 09:04:07.63 ID:nn6a6Cug.net]
フレームワークのドキュメントに書いてあるんじゃないですかね…
書いてないなら使う価値がない(品質が水準に達していない)

689 名前:デフォルトの名無しさん mailto:sage [2017/07/08(土) 17:32:49.37 ID:Ra2NVXKJ.net]
koa2ってどうよ? 使っているヤシ居る?

690 名前:デフォルトの名無しさん mailto:sage [2017/07/08(土) 21:12:14.30 ID:XWVPkNFz.net]
触ろうと思ってサンプルプロジェクト作って中途半端に弄ってから半年経ったわ

691 名前:デフォルトの名無しさん mailto:sage [2017/07/09(日) 00:03:48.07 ID:FGayP2eL.net]
jQueryとかnode.jsとかデファクトスタンダードでみんなやってる感のやつはどうも食指が動かない
変わり者ですみません

692 名前:デフォルトの名無しさん mailto:sage [2017/07/09(日) 00:23:45.88 ID:nvV/UuF5.net]
本当の変わり者は自分を変わり者とは言わない

693 名前:デフォルトの名無しさん mailto:sage [2017/07/09(日) 00:24:16.28 ID:iCzPmO29.net]
中二病やん

694 名前:デフォルトの名無しさん mailto:sage [2017/07/09(日) 00:29:34.35 ID:nYzmJ4mS.net]
nodeは一部の変態しかつかってないだろ?
スタンダードとかないわ

695 名前:デフォルトの名無しさん mailto:sage [2017/07/09(日) 00:36:10.71 ID:ODdY4A4c.net]
>>678
それでは変わったことをやっている人が
みんなやってるものをやれば良いのでは?

696 名前:デフォルトの名無しさん mailto:sage [2017/07/09(日) 00:38:52.02 ID:iCzPmO29.net]
人と違うことが誇らしいお年頃〜

697 名前:デフォルトの名無しさん mailto:sage [2017/07/09(日) 01:14:59.47 ID:A+aVbo6r.net]
んなこと言ってるくせに変わったものなんか使ってないんだろどうせ



698 名前:デフォルトの名無しさん mailto:sage [2017/07/09(日) 02:41:44.02 ID:zx3kMPLK.net]
自分から○○がやりたい!っていうのなら
それは前向きな意見であるが、

みんながやってるからやらない。
誰もやってないからそれをやるっていうのは
それをやりたいという意志がないので
後ろ向きな考え方だよ。やる気が無いといえる

699 名前:デフォルトの名無しさん mailto:sage [2017/07/09(日) 08:27:13.61 ID:CH1C34jF.net]
みんながやってるからやりたくない、はひねくれ者
気がついたらみんながやってることと違うことをやってた、てのが変わり者

700 名前:デフォルトの名無しさん mailto:sage [2017/07/09(日) 10:14:40.44 ID:LHQ7nZ8B.net]
javascriptとかいうデファクトスタンダードの権化を使うのをまずやめるべきだね

701 名前:デフォルトの名無しさん mailto:sage [2017/07/09(日) 12:11:00.81 ID:zrZ5NBAs.net]
x86やARMも使ってはいけない

702 名前:デフォルトの名無しさん mailto:sage [2017/07/09(日) 12:43:30.36 ID:TMBKe/0c.net]
インターネットを使ってるようじゃ変わり者ではない

703 名前:デフォルトの名無しさん mailto:sage [2017/07/09(日) 17:11:49.90 ID:88Sc1mx+.net]
>>676
async await使ってるならむしろどんどん触るべきじゃないのか。
俺はgoでサーバサイド書いてるからあえて使ってないけど、
全部jsでやるならkoaかも

704 名前:デフォルトの名無しさん mailto:sage [2017/07/09(日) 18:30:24.07 ID:cjuI8GCo.net]
express使ってても自分でミドルウェア書きまくるわけじゃないからな
標準のやらpassportやら使うだけだからasync/await使えて嬉しいことはほぼない
結局エコシステム揃ってる方を使う

705 名前:デフォルトの名無しさん mailto:sage [2017/07/10(月) 13:43:08.24 ID:gqDySAuG.net]
>>691
koaってexpressのミドルウェア使えたはず。
だからエコシステム的には問題ない。
とは言えasync-awaitもところどころ詰まるところはあるのは分かる
(例えばarrayのmapに渡す関数としては使えないとか。)

でも今から使うならkoaの方かな。

706 名前:デフォルトの名無しさん mailto:sage [2017/07/10(月) 13:46:50.96 ID:Labl8nFy.net]
expressのミドルウェア使うならexpressでええやん

707 名前:デフォルトの名無しさん mailto:sage [2017/07/10(月) 14:16:11.77 ID:gqDySAuG.net]
>>693
非同期処理を同期的にかける魅力には勝てない。



708 名前:デフォルトの名無しさん mailto:sage [2017/07/10(月) 14:57:56.02 ID:szK1finj.net]
691に戻る

709 名前:デフォルトの名無しさん [2017/07/10(月) 16:33:23.58 ID:hbYLDPUX.net]


710 名前:デフォルトの名無しさん [2017/07/10(月) 17:53:20.41 ID:LYSrTSKk.net]
>>692
array.mapに非同期関数渡したいならrxjsで処理してtoPromiseすればおk

711 名前:デフォルトの名無しさん mailto:sage [2017/07/10(月) 18:48:24.41 ID:gqDySAuG.net]
>>697
いや。そもそもPromise.Allがmapと同義じゃんってわかったから
あえてrxjsは使わなくてもok

712 名前:デフォルトの名無しさん mailto:sage [2017/07/10(月) 19:17:56.48 ID:9M+6V9gq.net]
まっ CORE ASP使っている身としては、koa2で十分なんだが、JadeからPugへの変更って必要だったのかえぇ〜? いまいちのような感じかする。
軽いCMSにkoa2は便利。 重いのもいけそうではあるが・・・

713 名前:デフォルトの名無しさん [2017/07/10(月) 19:26:02.76 ID:LYSrTSKk.net]
>>699
jadeもpugも一緒だぞ
商標の問題で名前変えただけで

714 名前:デフォルトの名無しさん [2017/07/11(火) 16:15:40.20 ID:IkyG2RiR.net]
koa2ってなに?koa.jsのこと?

715 名前:デフォルトの名無しさん [2017/07/11(火) 17:21:49.33 ID:9uLf2kf9.net]
koe.js v2

716 名前:デフォルトの名無しさん [2017/07/11(火) 17:22:14.73 ID:9uLf2kf9.net]
x koe.js v2
o koa.js v2

717 名前:デフォルトの名無しさん mailto:sage [2017/07/11(火) 23:24:55.50 ID:rvrzGERi.net]
あんましexpressもkoaも使ってるぜーって情報発信してる人いない気がする。
知らないうちにブロだクションで動いてるんかな



718 名前:デフォルトの名無しさん mailto:sage [2017/07/11(火) 23:54:59.61 ID:0kzPGIzN.net]
expressってwebアプリケーションフレームワークって感じじゃないからな
rubyでいえばrack相当でrails相当じゃないから表に出ない

719 名前:デフォルトの名無しさん [2017/07/12(水) 00:05:15.88 ID:lpTuRvg7.net]
expressはnode.js標準に付いていてもおかしくない程度の軽いフレームワークだしな

720 名前:デフォルトの名無しさん mailto:sage [2017/07/12(水) 01:08:53.04 ID:VV5TEq59.net]
ぶっちゃけ、express使うような案件だとphpでよくない?っておもっちゃう

721 名前:デフォルトの名無しさん mailto:sage [2017/07/12(水) 01:23:02.63 ID:qAT72GnU.net]
socket.ioとか使いたいからそれはないな

722 名前:デフォルトの名無しさん mailto:sage [2017/07/12(水) 03:27:41.84 ID:VV5TEq59.net]
>>708
おれもゲームサーバーでnode+socket.io使ってるけど、expressで配信するコンテンツってphpでよくね?ってパターン多い気がする
どうしても非同期じゃないと無理ってパターン以外は非同期のデメリットがでかすぎる
とくにDBがらみの単純な登録画面とかね
phpの数倍の開発コストかかるよ

723 名前:デフォルトの名無しさん mailto:sage [2017/07/12(水) 04:17:22.08 ID:Rdi75m+a.net]
expressでdbアクセスなんてしてないな
bffとして使ってるから
node/expressの後ろのapi鯖はphpだったりrailsだったりjavaだったり

724 名前:デフォルトの名無しさん mailto:sage [2017/07/12(水) 04:21:26.67 ID:VV5TEq59.net]
>>710
ああ、そういう二段構えならokだね

725 名前:デフォルトの名無しさん mailto:sage [2017/07/12(水) 07:31:45.77 ID:46U9BX05.net]
でもphpって1requestが1プロセスで高コストだから同時接続数を稼ごうと思ったらnode.jsの方が良いんじゃないの?dbがボトルネックだから気にする必要はない?

726 名前:デフォルトの名無しさん mailto:sage [2017/07/12(水) 07:33:23.93 ID:46U9BX05.net]
それにasync awaitつかえば非同期処理はかなり自然に書けないかな?
学習コストは高くなるかもだけど

727 名前:デフォルトの名無しさん mailto:sage [2017/07/12(水) 08:32:57.14 ID:Fm5flkvk.net]
async/await使いたいけど、LTSになるまで待ってって言われてる(´・ω・`)
TypeScriptはコンパイルしたくないって言われた、、、



728 名前:デフォルトの名無しさん mailto:sage [2017/07/12(水) 08:35:16.60 ID:VV5TEq59.net]
最終的にはアクセス増えたときのパフォーマンスの話になるんだろうけどそんなこと気にするレベルじゃない案件でわざわざ苦労してまでexpressでがんばる必要はないなと思う
必要な場面で局所的に使うのがnodeっていうイメージ

729 名前:デフォルトの名無しさん mailto:sage [2017/07/12(水) 11:37:51.18 ID:WN7PTjbN.net]
phpだってさすがにスレッドぐらい使えるだろう

730 名前:デフォルトの名無しさん mailto:sage [2017/07/12(水) 14:22:08.20 ID:sNyzU/qO.net]
非同期DB使えよ

731 名前:デフォルトの名無しさん mailto:sage [2017/07/12(水) 15:54:06.61 ID:46U9BX05.net]
>>716
むっちゃしんどかった。
goを学習してgorutineで書き直したわ。

732 名前:デフォルトの名無しさん mailto:sage [2017/07/24(月) 09:12:28.43 ID:/vKjgZpt.net]
express-resourceを使ってAPIサーバーを作りたいって考えているのですが
データベースへのアクセス手順を共通化したくなり、下記のようにしました。

class dbaccess {
 constructor(db) {
  this.db = db
 }
 index(req, res, next) {
  console.log(this) // undefined
  this.db.find({}, (e,r)=>res.json(r))
 }
 // 以下略
}

app.use('users', new dbaccess(db))

1 APIクライアントからの GET /
-> this が undefined になっていてエラーになる

2 下記のコードからのindex()呼び出し
var dba = new dbaccess(db)
dba.index(null, null)
-> thisの内容が表示される

何か上手い解決策はないでしょうか。

733 名前:デフォルトの名無しさん mailto:sage [2017/07/24(月) 10:45:49.25 ID:1TXRI9Gx.net]
constructor内で
this.index.bind(this)でthisの束縛をすれば解決しませんか?

734 名前:デフォルトの名無しさん [2017/07/24(月) 15:05:38.54 ID:BdqEvISL.net]
うむ

735 名前:デフォルトの名無しさん mailto:sage [2017/07/24(月) 17:23:58.44 ID:/vKjgZpt.net]
>>720
お答えいただきありがとうございます。
それを全部のメソッドにやるのも何かしっくりこないので、

下のようにクロージャにしてしまったら何とか期待する動作になりました。

function dbaccess(db) {
 let _db = db;
 return {
  index(req, res) {
  }
  // 以下略
 }
}

クラスだと上手くいかないのがイマイチ納得できてませんけど。

736 名前:デフォルトの名無しさん mailto:sage [2017/07/25(火) 06:14:42.65 ID:5XPEt11J.net]
>>722
それが問題ならアロー関数をつかえば解決します。自動でthisを固定するんで。

737 名前:デフォルトの名無しさん mailto:sage [2017/07/25(火) 21:46:43.91 ID:1fcXX4D/.net]
>>719
おいおい、変なことしないほうが良いぞ
もうちょっと調べるべきだろ?

他のプロジェクトでそんな書き方してるか?
昔やったきりで忘れたし今のやり方は変わってるかもしれないから
適切なアドバイスはできないがよ、他はもっと簡単な書き方してるだろ?



738 名前:デフォルトの名無しさん mailto:sage [2017/07/25(火) 22:27:51.60 ID:5XPEt11J.net]
>>724
qiita.com/kazusa-qooq/items/23926befcb87c0c7b26f
によると
req,res,nextの3引数を取る関数を作ればいいみたいね。
偶然にもクロージャーを使うというのは正解だけど
nextを省略してるってことは他のミドルウエアを後から追加したら
動かなくなる

こういうの見てるとtypescript使うべきって思う。
型でapp.useに渡すクロージャーを制約できるからこういう失敗がない。

739 名前:デフォルトの名無しさん mailto:sage [2017/07/25(火) 22:30:30.22 ID:FGFvX1HY.net]

740 名前:="noopener noreferrer" target="_blank">>>719
GCされてね?
[]
[ここ壊れてます]

741 名前:デフォルトの名無しさん mailto:sage [2017/07/26(水) 15:41:26.54 ID:2Xw6+C7K.net]
722です
一応、最小限っぽいコードを書いてみました。
www.dotup.org/uploda/www.dotup.org1319642.zip.html
users.jsからdbaccessを利用していますが、ここをtags.js, articles.jsと増やしていきたいって考えています。

>>724
本家のサンプルも利用者のblog記事なども一通り見たのですが、
見つかるは全部関数なので、そもそもクラスでの利用を想定していないのだろうと当たりを付けて
影響なさそうなクロージャにしてしまいました

>>725
ミドルウェアの追加は想定していない、クライアントコードなので特に支障はないと判断してます
本音を言うと、ただ書き忘れただけなのですけど。

742 名前:デフォルトの名無しさん mailto:sage [2017/07/26(水) 16:04:27.16 ID:2Xw6+C7K.net]
ちなみに、なんでクラスで書こうと思ったのかと言えば
クロージャとクラスのインスタンスが内部的には等価だと思っていたからです

743 名前:デフォルトの名無しさん mailto:sage [2017/07/26(水) 16:54:58.69 ID:p1ZvRLSy.net]
codepenとか使うかgithubに上げるかして欲しいわ。
正直zipでってなんかイャ

744 名前:デフォルトの名無しさん mailto:sage [2017/07/26(水) 16:56:23.68 ID:p1ZvRLSy.net]
>>728
将来の自分のためにも流儀は合わせておくべき。
コード量の削減に影響するとも思えない。

745 名前:デフォルトの名無しさん mailto:sage [2017/07/26(水) 21:17:16.61 ID:EkC4vcRh.net]
>>728
thisが違うことから等価じゃないことが証明されてるでしょ?
じゃあクラスで書こうと思った理由は消滅してるよね?
ならクラスで書くのをやめるべきだよね?

746 名前:デフォルトの名無しさん mailto:sage [2017/08/18(金) 21:49:38.61 ID:ujwXUmoS.net]
useの第2引数に何が許されてるのかドキュメント読みなさい

747 名前:デフォルトの名無しさん mailto:sage [2017/08/27(日) 14:46:16.26 ID:JVSE3drk.net]
forkの経緯を眺めてたけどこれio.jsの時と違って結構めんどくさいな
これまでのNodeは人治主義のOSSだったってことか



748 名前:デフォルトの名無しさん [2017/08/27(日) 15:42:03.26 ID:XHFSs/EA.net]
シングルスレッドだから遅くならないって言うけど
マルチスレッド言語で動的にスケールすればいいでしょ?

749 名前:デフォルトの名無しさん mailto:sage [2017/08/27(日) 15:44:19.45 ID:IFPOQiAt.net]
Node.js Foundationに対し不安を持つグループによるNode.jsのフォークプロジェクト「Ayo.js」誕生
https://mag.osdn.jp/17/08/25/163000

750 名前:デフォルトの名無しさん mailto:sage [2017/08/27(日) 15:53:01.24 ID:4pu+F5Jq.net]
>>734
だよな

751 名前:デフォルトの名無しさん mailto:sage [2017/08/27(日) 15:53:18.14 ID:4pu+F5Jq.net]
>>735
matakayo

752 名前:デフォルトの名無しさん mailto:sage [2017/08/27(日) 16:05:49.89 ID:iBnNI7N6.net]
シングルスレッドだから遅くならないなんて言っている人なんているかねぇ?
C10Kの話ならかなりニュアンスが違う。

753 名前:デフォルトの名無しさん mailto:sage [2017/08/27(日) 16:12:18.21 ID:HAnDkIM0.net]
優秀な一名をこき使うから速いんだな。
ほんの少しでも空時間があったら仕事をぶっこむ。
人間なら死ぬわ。

754 名前:デフォルトの名無しさん [2017/08/27(日) 16:17:42.17 ID:XHFSs/EA.net]
>>738
メモリ使用量が増えないってnodeのメリットじゃないの?
そんなのスケールアウトで十分だと思うんだが

755 名前:デフォルトの名無しさん mailto:sage [2017/08/27(日) 16:22:23.64 ID:sNhXAArf.net]
> メモリ使用量が増えないってnodeのメリットじゃないの?
だれがメモリ使用量が増えないというメリットが有ると
いったんだ? お前の脳内か?

756 名前:デフォルトの名無しさん mailto:sage [2017/08/27(日) 17:35:42.54 ID:0P4eY3kj.net]
nodeが良かったのはは非同期apiにより
プロセスあたりのリクエスト処理数を高めたからでしょう?
マルチプロセスにすればその分リクエスト処理数もある程度スケールしてくれる。ただしdbアクセスは考慮しないものとする

757 名前:デフォルトの名無しさん mailto:sage [2017/08/27(日) 18:30:42.93 ID:LIgBPoun.net]
mongoDBとかNoSQLとはなんだったのか



758 名前:デフォルトの名無しさん mailto:sage [2017/08/27(日) 18:57:54.53 ID:IIGC9wQX.net]
>>743
nodeとは全く別もので、ただのデータベース

759 名前:デフォルトの名無しさん mailto:sage [2017/08/28(月) 11:26:19.65 ID:XrV67/p5.net]
Nodeが普及したのは良いサイバーサイドJS環境だったから

760 名前:デフォルトの名無しさん mailto:sage [2017/08/29(火) 09:43:28.14 ID:PNzW02X+.net]
let dict = {}
で辞書のように使おうとしたんだけど、
dict['constructor']ではまった
アレイにkvペア入れて頑張るしか無いの?
16万項目あるので線形検索は躊躇う

761 名前:デフォルトの名無しさん mailto:sage [2017/08/29(火) 10:19:27.35 ID:9ZzXxIqM.net]
Mapを使うとかlet dict = Object.create(null)とか

762 名前:デフォルトの名無しさん mailto:sage [2017/08/29(火) 11:53:07.27 ID:sgTDSrY2.net]
>>746
16万項目のデータをメモリ内に置くのか。
もっといい方法無いかな。realmとか使えればいいんだけど。

763 名前:デフォルトの名無しさん mailto:sage [2017/08/29(火) 11:59:45.48 ID:PNzW02X+.net]
Object.createで上手くいった
try catchで検出してエラーになるのを、別管理と考えてたけど、すっきりした
さんきゅ

764 名前:デフォルトの名無しさん mailto:sage [2017/08/29(火) 12:07:49.40 ID:PNzW02X+.net]
>>748
db構築に使うフォーマット変換ツールなので、適切な時間で終了する事が要件で
利用リソース量はあまり気にしない

765 名前:デフォルトの名無しさん [2017/09/03(日) 12:30:07.14 ID:U+3KDr2c.net]
eslintとそれにぶら下がるプラグイン本当互換性がない
ツール入れる所でトラブらないといけないとかだるいわ
これだからJavaScriptなんて書きたくないんだよ

766 名前:デフォルトの名無しさん mailto:sage [2017/09/03(日) 12:34:43.60 ID:DIhXI1rF.net]
eslintのプラグイン何を使おうとしてるの?
使わなければいいじゃない

767 名前:デフォルトの名無しさん mailto:sage [2017/09/03(日) 12:59:47.72 ID:VH3Jw1dH.net]
airbnb辺りのプリセット使えばええやん



768 名前:デフォルトの名無しさん [2017/09/03(日) 20:32:32.58 ID:CKCB7oSp.net]
そのairbnb関連のjsx-a11yとかな
https://github.com/evcohen/eslint-plugin-jsx-a11y/issues/283

769 名前:デフォルトの名無しさん [2017/09/04(月) 11:57:48.72 ID:xXgpQO1P.net]
>>742
そういうのもNginxやApacheがある程度やってくれるようになってるからね。
後ろは好きな言語をそのまま

770 名前:使えばいい。PHP-FcgidとかuWSGIとかRackとかServletとか。 []
[ここ壊れてます]

771 名前:デフォルトの名無しさん mailto:sage [2017/09/04(月) 18:58:52.14 ID:XPn2hQsA.net]
>>755
非同期apiはphp処理系では無理じゃない?phpはインスタンスの生存時間がリクエストを受けてからレスポンスを返すまでの固定だよね。

どうやってイベントループ回すの?

772 名前:デフォルトの名無しさん mailto:sage [2017/09/04(月) 20:39:48.99 ID:tWvDAnX3.net]
>>756
フレームワークによってはイベントループで生存期間が無限のものもあったはず。
前の会社で、そういうWebSocketフレームワーク使おうとしてたよ。

…そんな用途全く想定してない普通のPHP用のオレオレライブラリ組み合わせて
メモリリーク起こしてたけど(藁

773 名前:デフォルトの名無しさん mailto:sage [2017/09/05(火) 08:00:30.55 ID:JsNUX7wh.net]
>>757
メモリリーク起こすなら使えないな。
phpってインスタンスの生存時間短い前提だから、
メモリリークってさほど気にしなくて良い言語なのかも。
素直にjsでいい気がするけどね。今の時代。
yahooで勤務してる知り合いも今はjsでサーバサイドを書いてるってさ。

774 名前:デフォルトの名無しさん mailto:sage [2017/09/05(火) 14:51:11.75 ID:x6NjkUnp.net]
もともとCGIはリクエスト毎にプロセス作ってサービスしてた
なので、一つのリクエストが終了するとperlやphpのプロセスも終了するので、オブジェクトを解放(リファレンス外す)しないCGIが多くある

ところが、これじゃおせーよと言うことで、終了させないで無理やりに複数リクエストを処理させる仕組みをでっち上げた
これがPHP-FcgidとかuWSGI

リークしまくりのサービスが出来上がり

三菱とかやりそうだろ

775 名前:デフォルトの名無しさん mailto:sage [2017/09/05(火) 15:05:46.14 ID:EAdtS/tk.net]
だから一定数のリクエストを処理したらプロセス再起動する
三菱でも大丈夫

776 名前:デフォルトの名無しさん mailto:sage [2017/09/05(火) 15:06:06.76 ID:y9gU3zED.net]
メモリだけじゃなくて
CPUもファイルI/Oも簡単に食い潰せるからな

777 名前:デフォルトの名無しさん mailto:sage [2017/09/05(火) 16:00:05.67 ID:JsNUX7wh.net]
>>760
なるほどね。大雑把な作りだ。
大昔Dephiの案件をやった時に、PLが
ひとかたまりのEXEを画面ごとにバラバラのEXEにして
切り替えるたびに終了させる仕組みを作り出して、メモリリークを
極力抑える仕様にしてたの思い出した(データはDBにおいてる)



778 名前:デフォルトの名無しさん mailto:sage [2017/09/05(火) 17:07:49.21 ID:x6NjkUnp.net]
>>760
三菱は自動再起動なんて技術がないから、連絡受けて手動で再起動してた

779 名前:デフォルトの名無しさん mailto:sage [2017/09/06(水) 21:18:48.34 ID:CWS2BygD.net]
何故、三菱が引き合いに出されるのだ?
なんかやらかしたんかい。

780 名前:デフォルトの名無しさん mailto:sage [2017/09/06(水) 21:34:30.85 ID:tZ2T0w/m.net]
Librahackで検索

781 名前:デフォルトの名無しさん mailto:sage [2017/09/06(水) 22:59:23.06 ID:CWS2BygD.net]
三菱電機インフォメーションシステムズ (MDIS) 製のソフトウェアは、
1時間に400以上リクエストを送られると他のリクエストの処理が不可能になる不具合を含んでいた

これか?
9秒に1回以上で破たんするなんてどんな実装か興味津々

782 名前:デフォルトの名無しさん mailto:sage [2017/09/06(水) 23:25:37.77 ID:tZ2T0w/m.net]
これを読むとイメージがわかる
takagi-hiromitsu.jp/diary/20130316.html
el.jibun.atmarkit.co.jp/pressenter/2012/09/1-0f4e.html (事件をモデルにしたフィクション)

783 名前:デフォルトの名無しさん mailto:sage [2017/09/07(木) 03:05:39.43 ID:x1ExMc+m.net]
そもそもDOMとのメモリリークとかまともに対応してきたJS界のエンジンが優秀過ぎるだけで
他のサーバサイド言語で環境を跨いた循環参照とか上手く処理できるエンジンは無いし、他のGC技術や調整も何年も遅れてる

784 名前:デフォルトの名無しさん mailto:sage [2017/09/07(木) 06:19:08.39 ID:+w9zPnXt.net]
WebアプリでDBコネクションを10分間も保持するなんてどういう実装したらできるんだろ?
普通にやったんじゃできないよね。

785 名前:デフォルトの名無しさん mailto:sage [2017/09/07(木) 07:18:46.25 ID:K4PeVUi8.net]
応答しなければいい

786 名前:デフォルトの名無しさん mailto:sage [2017/09/07(木) 09:17:55.33 ID:9vlATu9m.net]
>>769
expressだって、グローバルスコープの変数にコネクション保持すれば、その参照切るまで残るぞ

787 名前:デフォルトの名無しさん mailto:sage [2017/09/07(木) 12:06:54.84 ID:OJmUELTm.net]
>>769
膨大な数のリクエスト処理するのになぜ閉じるのかが逆に理解できないんだけど
普通WebアプリやサービスのDBはつなぎっぱなしだとおもう



788 名前:デフォルトの名無しさん mailto:sage [2017/09/07(木) 12:43:46.04 ID:rxsfMKHp.net]
Webのセッションが終わってるのにコネクションをセッションのために10分間保持してたって事でしょ?
普通はコネクションは閉じないがWebのリクエスト毎に紐付けは開放でしょ。

789 名前:デフォルトの名無しさん mailto:sage [2017/09/07(木) 13:10:59.01 ID:ZzrrO/3t.net]
>>773
アプリサーバーとか作ったことある?

790 名前:デフォルトの名無しさん mailto:sage [2017/09/07(木) 14:19:14.16 ID:oGYUX/gJ.net]
>>773
その紐付けを解放しないのが三菱流

791 名前:デフォルトの名無しさん mailto:sage [2017/09/07(木) 19:20:21.66 ID:+w9zPnXt.net]
>>774
ないズラ
そんなヤツ僅少だろ

792 名前:デフォルトの名無しさん mailto:sage [2017/09/07(木) 19:23:08.30 ID:+w9zPnXt.net]
>>775
三菱に限らずSIerの技術力低下が半端ない

793 名前:デフォルトの名無しさん mailto:sage [2017/09/07(木) 22:32:27.03 ID:9vlATu9m.net]
自分達の底辺技術レベルが原因で、無実のエンジニアを罪人にして、ほっかむりしたのは三菱だけ

794 名前:デフォルトの名無しさん mailto:sage [2017/09/08(金) 00:15:56.20 ID:7o1xz83o.net]
ちなみにDBってopenとtransactionを分離している奴があるけど、これって何で?
例えばIndexedDBでもそうで、open後にtransactionを作ってアクセスしなければならない。
しかし普通に読み書きだけなら
DBWrite(DBname, objectStores, key, value)
みたいなAPIでクエリ毎にopen/close繰り返した方が使う側は楽だよね。

何らかの理由でopenが重いから分離しているのだろうけど、
普通に実装すればそんなに重いとも思えない。
(実際はopenは数秒かかる時もある程重いが)
これって何で?

ちなみに類似ケースはXHRで、通常は毎回XHRをnewするだろ。
indexedDB.openもそれに近くて、本来はオブジェクトを初期化するだけで終わるはず。

795 名前:デフォルトの名無しさん mailto:sage [2017/09/08(金) 00:27:44.82 ID:vWsWUiiy.net]
>>769
> WebアプリでDBコネクションを10分間も保持するなんてどういう実装したらできるんだろ?
> 普通にやったんじゃできないよね。

コネクションプールを使ったら普通にそうなりますが?

796 名前:デフォルトの名無しさん mailto:sage [2017/09/08(金) 00:28:57.91 ID:vWsWUiiy.net]
>>779
DBをopenしてselectしてcloseするなら
トランザクションいらないでしょ?

797 名前:デフォルトの名無しさん mailto:sage [2017/09/08(金) 00:31:58.67 ID:vWsWUiiy.net]
>>779
> 何らかの理由でopenが重いから分離しているのだろうけど、
> 普通に実装すればそんなに重いとも思えない。

ゆえにopenが重いから分離しているという
あなたの想像は間違いだって言うこと。

根拠のない想像を結論にしないようにしよう
検証の前にあるのは結論ではなく仮定という



トランザクションは複数の操作を一塊にするもので
openが軽いのとは関係ない話



798 名前:デフォルトの名無しさん mailto:sage [2017/09/08(金) 00:47:45.77 ID:pIgMfxSJ.net]
>>781
IndexedDBの場合はトランザクションは常に必要だ。
他の楽観的なトランザクション分離のDBについては知らん。

>>782
では何故openとtransactionを分離するんだ?
最初からtransaction単位でopen/closeするAPIにしておけばいいだけの話だろ。
そこを分離して手動でやらせる理由が分からん。

799 名前:デフォルトの名無しさん mailto:sage [2017/09/08(金) 00:55:56.99 ID:vWsWUiiy.net]
IndexedDB特有の話なら、IndexedDBの話だって書けよ

はい、トランザクションつかってませーん。ばいなら

qiita.com/butakoma/items/2c1c956b63fcf956a137#%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%82%B9%E3%83%88%E3%82%A2%E4%BD%9C%E6%88%90

オブジェクト

800 名前:ストア作成
オブジェクトストアは、RDBでいうテーブル。

var storeName = 'sampleStore';

var openReq = indexedDB.open(dbName, dbVersion);
// オブジェクトストアの作成・削除はDBの更新時しかできないので、バージョンを指定して更新

openReq.onupgradeneeded = function(event){
var db = event.target.result;
db.createObjectStore('storeName', {keyPath : 'id'})
}
[]
[ここ壊れてます]

801 名前:デフォルトの名無しさん mailto:sage [2017/09/08(金) 00:57:25.86 ID:vWsWUiiy.net]
IndexedDB特有の話ならtransaction使わないと
readonlyなのかreadwriteなのか決められないからだろ

802 名前:デフォルトの名無しさん mailto:sage [2017/09/08(金) 01:14:01.64 ID:mcCYyLIS.net]
>>779
DBへの接続(open)とトランザクションは別のレイヤーだからだよ
1つの接続で2つのトランザクションを実行したい場合どうすんの?

transactionを明示的に指定しない場合に
デフォルト設定で例えばステートメント単位でトランザクションになるような仕組みがDBにあればtransaction指定は必須でなくなる
一般的なRDBはそうなってると思うけど

803 名前:デフォルトの名無しさん mailto:sage [2017/09/08(金) 01:20:17.29 ID:pIgMfxSJ.net]
>>784-785
つかお前根本的に分かってないだろ。

IndexedDBはonupgradeneededの時は最初からトランザクションを張っている。
これはMDNからはとてもそうは読めないのだが、とにかくそう。

そしてAPIが
> DBWrite(DBname, objectStores, key, value)
> DBWrite
とかでいいのではないか?というのが俺の疑問なのだが。


何故かは知らんがDBには「繋ぎっぱなし」の文化はあるんだよ。>>772
IndexedDBのAPIからもそれは読みとれる。
> Web アプリが別のタブで開かれているときにバージョンを変更する
> https://developer.mozilla.org/ja/docs/Web/API/IndexedDB_API/Using_IndexedDB
毎回閉じる文化ならそもそもこれは要らない。

MDISはこの「繋ぎっぱなし」の文化でWeb側にも解放したらリソースが枯渇しただけだろ。
ただそもそもこの「繋ぎっぱなし」ってなんなのさ?
open/closeが軽いのなら毎回open/closeすればいいだけだし、
普通に実装すれば重いとも思えないし、ということなのだが。
(ただし実際にはIndexedDBでもopen/closeは重い)

804 名前:デフォルトの名無しさん mailto:sage [2017/09/08(金) 01:26:20.56 ID:pIgMfxSJ.net]
>>786
> transactionを明示的に指定しない場合に(以下略)
これについてはそれでいい。
APIコール1回=1つのtransactionになるって事で。

> 1つの接続で2つのトランザクションを実行したい場合どうすんの?
これってどういうケース?
その2つのトランザクションをくっつけて1つのトランザクションにしておけばいいだけの話では?
並列性を限界まで出したくて、例えばライト/リードでトランザクションを分けておきたいとかか?

805 名前:デフォルトの名無しさん mailto:sage [2017/09/08(金) 03:16:51.74 ID:mcCYyLIS.net]
>>788
1回の接続で複数トランザクションを実行したいケースってあんまりないのかな
例えば2つのトランザクションのうち後者が失敗しても前者をロールバックしたくない時とか考えてみたら?

トランザクションのたびに再接続するので良いケースもありうるけどそうじゃないケースもありうるよね
だから一般的にはトランザクション境界と接続の開閉を一つにしたAPIってのはいい設計じゃないと思う

>>787
繋ぎっぱなしの文化なんかなくて、ただの開放漏れのバグだよ
openしたらcloseするのが必須

806 名前:デフォルトの名無しさん mailto:sage [2017/09/08(金) 08:36:52.78 ID:Q9xrmP/+.net]
>>780
コネクションプーリングはコネクションを使いまわす仕組みだからDBには繋がったままだけどWebのセッションからはリクエストの度に切り離される。
とっくに終わってるセッションがコネクションを独占するようなアホな作りはどうやったらできるのかって事。

807 名前:デフォルトの名無しさん mailto:sage [2017/09/08(金) 08:40:11.92 ID:Q9xrmP/+.net]
>>787
繋っぱなしってコネクションプーリングのことでしょ。アプリから見ると毎回、open/closeしてるように見える。



808 名前:デフォルトの名無しさん mailto:sage [2017/09/08(金) 09:36:43.18 ID:vWsWUiiy.net]
>>790
コネクションを独占ってなんだ?
異なるセッションから、コネクションを使いまわすのがコネクションプーリングなんだが?
セッションが終わってるっていうのなら、コネクションは明け渡してるだろ

809 名前:デフォルトの名無しさん mailto:sage [2017/09/08(金) 09:38:38.44 ID:vWsWUiiy.net]
>>787
> IndexedDBはonupgradeneededの時は最初からトランザクションを張っている。

じゃあなおのこと、openでトランザクションは貼れないな。
だって、何の操作をするかで、トランザクションの種類が変わるわけで
openした時点ではわからないんだから

810 名前:デフォルトの名無しさん mailto:sage [2017/09/08(金) 09:40:18.14 ID:vWsWUiiy.net]
>>787
> そしてAPIが
> > DBWrite(DBname, objectStores, key, value)
> > DBWrite
> とかでいいのではないか?というのが俺の疑問なのだが。

トランザクションは複数のDBWriteを
一つにまとめるものなんだから
それじゃだめだろって言ってるんだが?

いいからトランザクションを勉強してくれ
お前、根本的に分かってない(笑)

811 名前:デフォルトの名無しさん mailto:sage [2017/09/08(金) 11:27:15.08 ID:K/Y+ost0.net]
>>792
>>766-767

812 名前:デフォルトの名無しさん mailto:sage [2017/09/08(金) 19:22:44.56 ID:pIgMfxSJ.net]
>>789
ただのバグでMDISが糞だというのは同意だが、APIは糞だぞ。

> 例えば2つのトランザクションのうち後者が失敗しても前者をロールバックしたくない時とか考えてみたら?
これなら2つトランザクションを打てばいいだけ。それで何の問題もない。

> トランザクションのたびに再接続するので良いケースもありうるけどそうじゃないケースもありうるよね
ねえよ。具体的に挙げられないだろ。

open/closeがAPIにある場合の利点は、連続した同一DBに対する2つのトランザクションで、
・open/transaction1/close/open/transaction2/close

・open/transaction1/transaction2/close
とでき、真ん中のclose/openを省ける分速度が稼げることだ。
しかしこの場合に、DB内部でキューイング機構を持ってこの余分なclose/openを自動的に省き、
・ユーザ側で手動open/closeした場合と、
・ユーザAPIはトランザクション単位で、DB内部で自動open/close
で、パフォーマンスが全く変わらない場合、前者を使う理由がないだろ。
(現実的にはユーザ側でコネクションプールを実装する必要であり、
これの代替としてDB内部でキューイング機構を持っていてもパフォーマンスは変わらないはず)

open/closeをユーザ側に見せている時、ユーザ側の解は以下で、
A. いちいちopen/closeして使う。
B. これがウザイから自前でラッパを用意し、
> アプリから見ると毎回、open/closeしてるように見える (>>791)
ようにする。
C. さらにこれもウザイから、何らかの既存ラッパ(PouchDBとか)を使う。
だろ。俺はまずAを試し、スループットが全く出ないのでBにしたが、車輪の再開発感ありまくりだった。
コネクションプーリングするのが常なら、最初から付けとけよボケ、でしかない。
(なおPouchDBもdb.open必須。多分これがDBのAPIの標準形だからだと思う)

813 名前:デフォルトの名無しさん mailto:sage [2017/09/08(金) 19:23:19.38 ID:pIgMfxSJ.net]
DBのAPIは意味不明で、そもそもオブジェクト指向にも反してる。
ユーザがやりたいのはread/writeであって、open/closeではない。
File.openの代わりにHDD.open+File.readというAPIにする奴がいたら、死ねでしかないだろ。

open/closeってもしかして今みたいなパケット相乗り回線ではなく、専用回線を掴んでいた時の名残か?

814 名前:デフォルトの名無しさん mailto:sage [2017/09/08(金) 19:24:30.23 ID:pIgMfxSJ.net]
>>790
MDISのケースは多分、図書館内端末用の界面にそのままWebを接続しただけだろ。
この場合、見た目は問題なく動く。
リソース枯渇のケースはコードから落とすしかないが、レビューが新規コードだけなら無理だ。
(この場合は新規コードはほぼ無しで、問題は今動作しているコード内にあるから)
おそらくMDISもB方式で、自前でコネクションプーリングしてる。
これは館内端末用で、端末に行列が出来ているかどうかは知る由もないから、closeはタイムアウトで10分とした。
ここまでは妥当な設計で、館内端末なんて高々数十台だし、問題なく動く。

問題はこれをそのままWeb側にも解放したことで、
この場合は一気に端末数が無限大になるのと等価で、コネクションが枯渇した。それだけだろ。
本来は、
D. Webからの入力を受ける「仮想端末」を用意し、Web入力は一旦全部そこで受けてからDBアクセス。
E. open/closeを毎回やるようにする。(Aと同じ)
のどちらかが必要で、本来はDの方がいいし多分そうしていると思う。
Dの場合はDDoS時にも館内端末は無傷

815 名前:ナ済む。
追加コードは仮想端末部分だけであり、既存コードには一切手を入れる必要がない。
Eの場合は全体のパフォーマンスが「いちいちopen/close」分だけ落ちる。
とはいえ真面目にDBを組んであればUIからでは見えないとも思う。
変更はopen/closeが内部APIで隠蔽されていれば数行、といったところか。
(そうなっていない場合は全体ソースを見直す必要があり、現実的ではない)
[]
[ここ壊れてます]

816 名前:デフォルトの名無しさん mailto:sage [2017/09/08(金) 23:49:21.12 ID:mcCYyLIS.net]
>>796
もうめんどくさいな君w
DBへの接続とトランザクション境界を一致させた画期的APIを作って流行らせればいいよ?
一つのユースケースたけに特化したものとしては別にあっても悪く無いと思うよ
ただなぜそういう設計のものが存在しないのか考えてからね

817 名前:デフォルトの名無しさん mailto:sage [2017/09/09(土) 01:02:01.91 ID:al+wrNfN.net]
>>797
> ユーザがやりたいのはread/writeであって、open/closeではない。

そのうち二回のwriteを実行して二回目のwriteで
エラーが起きた時に一回目のwriteもロールバックするために
トランザクションがあるんですよ?



818 名前:デフォルトの名無しさん mailto:sage [2017/09/09(土) 01:12:33.18 ID:al+wrNfN.net]
https://developer.mozilla.org/ja/docs/Web/API/IndexedDB_API/Using_IndexedDB#Getting_data_from_the_database

データベースからデータを取得する

よーし、今から customers テーブルのデータを読み込むぞー!

var transaction = db.transaction(["customers"]);



おい、ちょっとまて俺はdbオープンした時に
自動的にトランザクション実行するぞ!
全てのテーブルに対してreadwriteロックじゃ
誰も読み込みも書き込みもできない
俺はcutomersテーブルなんか触らないけどなwww


こういう迷惑バカが居るから、openとトランザクションは別にするべき

819 名前:デフォルトの名無しさん mailto:sage [2017/09/09(土) 01:14:33.64 ID:al+wrNfN.net]
>>798
open/closeのパフォーマンスを気にしてるのはお前だけだ
忘れろな

820 名前:デフォルトの名無しさん mailto:sage [2017/09/09(土) 01:16:06.59 ID:al+wrNfN.net]
>>798
> 問題はこれをそのままWeb側にも解放したことで、
> この場合は一気に端末数が無限大になるのと等価で、コネクションが枯渇した。それだけだろ。

誰もコネクションが枯渇したなんて言ってない

821 名前:デフォルトの名無しさん mailto:sage [2017/09/09(土) 01:26:53.73 ID:al+wrNfN.net]
>>798
当たり前すぎることだが、MDISのシステムは
「1時間に400以上リクエストを送られると他のリクエストの処理が不可能になる不具合を含んでいた」
と言ってるだけで、

ウェブのクライアントが直接DBに接続したなんて誰も言ってない。
そもそもそんなことはできない

ブラウザからデータベースに接続することなんてできない。
IndexedDBはお前、それブラウザん中に実装されてるもんだ。そこを勘違してたわけかw
MDISのシステムはIndexedDBを用意してなんかいない。時代的に使ってすらいないだろう

本当に当たり前のことだが、
> D. Webからの入力を受ける「仮想端末」を用意し

仮想端末じゃなくて、普通はアプリケーション・サーバーっていうんだよ。
PHPだとウェブサーバーの場合もあるな。MDISも当然その仕組みだ

> E. open/closeを毎回やるようにする。(Aと同じ)

open/closeを毎回やっても、パフォーマンス向上のために内部的にデータベースに
接続しっぱなしにする機能がコネクションプールだ。正確言うと
前回のリクエストで使った(使い終わった)コネクションを使いまわす。


> 変更はopen/closeが内部APIで隠蔽されていれば数行、といったところか。
あははw ばーかwww アプリは毎回open/closeをしてるんだよ。
コネクションプールというミドルウェアがcloseした時になにもしないように置き換えてるんだよw

822 名前:デフォルトの名無しさん mailto:sage [2017/09/09(土) 01:27:51.16 ID:al+wrNfN.net]
コネクションプールを行うためのミドルウェアが

823 名前:デフォルトの名無しさん mailto:sage [2017/09/09(土) 08:27:34.35 ID:HacXztT4.net]
>>802
少なくともコネクションプーリングを考えたヤツはopen/closeのコストが大きいと考えてる。
数十ミリ秒と数ミリ秒の差が影響するシステムもある。

824 名前:デフォルトの名無しさん [2017/09/09(土) 11:05:16.16 ID:2lDsKHBN.net]
連想配列のキーに使用できる文字列の仕様ってどこに載ってますか?

825 名前:デフォルトの名無しさん [2017/09/09(土) 11:18:09.89 ID:2lDsKHBN.net]
連想配列にキーが存在するかチェックするのならinが速いな

const o = {
'a': 1,
'b': 2,
'あ b': 3,
};

const key = 'あ b';

const l = 100000;
console.time();
for (let i = 0; i < l; i += 1) {
key in o;
}
console.timeEnd();

console.time();
for (let i = 0; i < l; i += 1) {
o.hasOwnProperty(key);
}
console.timeEnd();

//undefined: 5.921ms
//undefined: 9.741ms

826 名前:デフォルトの名無しさん mailto:sage [2017/09/09(土) 11:31:15.85 ID:LLd0E2c+.net]
連想配列ならMapが最強
従来のオブジェクト形式が良いにしても
o = Object.create(null)でo[key]の方が早い

827 名前:デフォルトの名無しさん mailto:sage [2017/09/09(土) 11:46:17.16 ID:36A1ffms.net]
o[key] = 0
で破綻するやん



828 名前:デフォルトの名無しさん mailto:sage [2017/09/09(土) 11:50:30.88 ID:al+wrNfN.net]
>>806
だからなんだよ。

トランザクションの話をしてる時に
open/closeのコストを考えるなって話だろうが

829 名前:デフォルトの名無しさん mailto:sage [2017/09/09(土) 12:01:05.07 ID:al+wrNfN.net]
>>808
> 連想配列にキーが存在するかチェックするのならinが速いな
一回あたり
59.21ナノ秒(=0.00000005921秒)
97.41ナノ秒(=0.00000009741秒)

だと10万回〜100万回ぐらいチェックしない限り
速度を気にしたって意味なさそうだね。

830 名前:デフォルトの名無しさん mailto:sage [2017/09/09(土) 12:42:11.18 ID:gq9mYezw.net]
Object を連想配列にした場合、キーを、__proto__ にすると誤動作するから、
そのキーだけ、特別な処理が必要

他にも、使えないキーがあるかも

831 名前:デフォルトの名無しさん mailto:sage [2017/09/09(土) 12:46:58.91 ID:al+wrNfN.net]
>>813
どういう時に __proto__ をキーに使ったの?

832 名前:デフォルトの名無しさん mailto:sage [2017/09/09(土) 14:34:12.81 ID:gq9mYezw.net]
英文から、すべての単語を取り出して、出現回数でも調べたのかな?

どこかのサイトで、そういう質問を見た

833 名前:デフォルトの名無しさん mailto:sage [2017/09/09(土) 15:01:25.52 ID:1mapG51j.net]
つい最近>>746でオレが聞いた

834 名前:デフォルトの名無しさん mailto:sage [2017/09/09(土) 15:37:47.37 ID:al+wrNfN.net]
>>815
そういう場合は、適当なプリフィックスをつけるだけで解決するね

obj['@' + word] = なんとか

835 名前:デフォルトの名無しさん mailto:sage [2017/09/09(土) 16:00:58.16 ID:3M7laixG.net]
Object.create(null)で作ったオブジェクトには__proto__は無いし自由に値を設定できるこれ豆

836 名前:デフォルトの名無しさん mailto:sage [2017/09/09(土) 17:11:43.49 ID:gq9mYezw.net]
Object.create() は、ECMA 5.1, IE9 以上か

こういう機能が無かった、ES3 の頃の話かな

837 名前:デフォルトの名無しさん [2017/09/09(土) 19:32:09.22 ID:JfRpRKzR.net]
chromeのdevtoolsからconsole.dir({})やるとオブジェクトの中身が見れるけど
nodejsの場合はどうやって見るんでしょうか?



838 名前:デフォルトの名無しさん mailto:sage [2017/09/11(月) 09:40:29.07 ID:vJ3AiMg+.net]
○次受けが多いほど退場率が早くなる。高くなる

直受けの50万 客:いつまでもうちにいていいよ
3次受けの50万(客は90万払ってる) 客:短期延長していい?
5次受けの50万(客は150万払ってる) 客:作り終わったらとっと出てけ できなかったら即退場だ 
長時間労働 高稼働 高スキル要求が多い

フリーランスサイトを運営している零細ITの自称エージェントは労働市場から流れてくる案件を転売してるだけだった。
労働市場に加入すれば誰でも案件に応募することができた。収入が40万50万台にならなくて済む

エンド - ユー子 - エージェント-JIET 公表価格 90~60 - エージェント×3 = 言い値50万以下
エンド - ユー子 - エージェント-JIET 公表価格 90~60 - エージェント×1 悪質な言い値で50万以下
エンド - ユー子 - エージェント-JIET 公表価格 90~60 - JIETに加入して公表価格で応募できる

eJobgo JIET JISA で検索

優良エージェント・優良サイト

首都圏IT(PE-BANK)  プログラマーズ

839 名前:デフォルトの名無しさん mailto:sage [2017/09/12(火) 14:01:13.14 ID:yQ6PO1c5.net]
https://github.com/rook2pawn/node-ddos
調べ物をしている最中にこんなの見付けたんだけど
Httpdがリクエスト受け取ってる時点でDDoS対策にならないんじゃないの?

840 名前:デフォルトの名無しさん mailto:sage [2017/09/12(火) 14:33:55.38 ID:ziqXdae+.net]
>>822
動作の軽いリバースプロキシ立ててそこで対応す

841 名前:るほうがよさそう []
[ここ壊れてます]

842 名前:デフォルトの名無しさん [2017/09/12(火) 15:30:08.72 ID:bSzAw540.net]
node 8.0ってimpotr対応してないの?

843 名前:デフォルトの名無しさん mailto:sage [2017/09/12(火) 18:35:03.20 ID:e3er3ToK.net]
Chromeですら対応したというのに・・

844 名前:デフォルトの名無しさん mailto:sage [2017/09/12(火) 18:49:24.80 ID:BAm9hYWq.net]
node 8はこの秋LTSになるんだからアグレッシブに最新機能は入れないよ
node 9には入る

845 名前:デフォルトの名無しさん mailto:sage [2017/09/12(火) 21:29:56.96 ID:LuYVlbWB.net]
くそっ、typoかよ騙された

846 名前:デフォルトの名無しさん [2017/09/15(金) 21:47:46.74 ID:v6+6iXpW.net]
>>810
どういうこと?くわしく

847 名前:デフォルトの名無しさん mailto:sage [2017/09/15(金) 23:16:55.75 ID:AmSlTqPm.net]
const o = {
a: {name: 1},
b: {name: 2},
};

↑をObject.create(null)で作りたいんですけど

const z = Object.create(null);
z.a = Object.create(null);
z.a.name = 1;
z.b = Object.create(null);
z.b.name = 2;
console.log(z.a.name, z.b.name);

こう書くしかないんですかね?これだと読みづらくて1番目のようにデータが見やすく作る方法ってないですか?



848 名前:デフォルトの名無しさん mailto:sage [2017/09/15(金) 23:30:32.45 ID:Xh3vGrxx.net]
なんでObject.createしばりなの?
リテラル使っちゃだめな理由は?

849 名前:デフォルトの名無しさん mailto:sage [2017/09/15(金) 23:36:18.16 ID:QyBaQfPQ.net]
>>828
>>809を読め

>>830
>>746とか>>813を読め

850 名前:デフォルトの名無しさん mailto:sage [2017/09/15(金) 23:40:38.42 ID:wJEpgv7W.net]
リテラルじゃ継承されるからじゃね

851 名前:デフォルトの名無しさん mailto:sage [2017/09/16(土) 00:01:15.52 ID:xdW9+GRk.net]
>>829
Object.assign(Object.create(null), { a: {name: 1}, b: {name: 2}, }) ;

>>810
undefinedと比較

852 名前:デフォルトの名無しさん mailto:sage [2017/09/16(土) 00:09:23.95 ID:YClTS+Ib.net]
>>833
Object.assignはシャローコピーだから>>829と同じじゃない

undefinedとの比較は>>809とは違うしどっちみちundefinedを値として使うと破綻する

853 名前:デフォルトの名無しさん mailto:sage [2017/09/16(土) 00:18:50.51 ID:gf/ZkNkm.net]
>>831
え〜〜、Object.prototypeのプロパティに被る可能性があるからっていう理由で
>>829みたいな書き方になっちゃうの。。。用途によるんだろうけど何とも言えない気分

854 名前:デフォルトの名無しさん mailto:sage [2017/09/16(土) 00:36:48.84 ID:NSNMTUH3.net]
使うプロパティの種類が限られてるなら
気にする必要ないだろ

855 名前:デフォルトの名無しさん mailto:sage [2017/09/16(土) 08:30:48.03 ID:7pQmikz8.net]
>>829
jqueryから$を取り上げよう

856 名前:デフォルトの名無しさん mailto:sage [2017/09/16(土) 08:33:39.21 ID:NSNMTUH3.net]
>>837
また新しいライブラリを作ろうって話かよ。
lodashでできるんじゃね?

857 名前:デフォルトの名無しさん mailto:sage [2017/09/16(土) 09:45:53.23 ID:7pQmikz8.net]
簡単な関数だよ
$(name1, value1 ...)
>>829みたいな事をすれば良い



858 名前:デフォルトの名無しさん mailto:sage [2017/09/16(土) 09:57:17.44 ID:NSNMTUH3.net]
そうするとjQueryと勘違いされるから
違う関数名のほうが良さそうだね

859 名前:デフォルトの名無しさん mailto:sage [2017/09/16(土) 11:34:59.96 ID:C+9D3UXm.net]
にわかばっかだなここ

{
__proto__: null,
a:1
}

を使えば良いだけだろ……
その程度も知らないようじゃJSer失格
恥ずかしいよほんとに

860 名前:デフォルトの名無しさん mailto:sage [2017/09/16(土) 18:21:39.65 ID:/o2/v2Gm.net]
chromeのdevtoolsのコンソールでconsole.log.を補完すると色々でてくるんですが、
console.logの中にはnameってプロパティがあるんですがこういうのはObject.getOwnPropertyNamesで取れました
console.log(Object.getOwnPropertyNames(console.log));

console.logに含まれるhasOwnPropertyとか__proto__とか__defineGetter__なども関数とか
for (let v in console.log) {
console.log(v);
}
じゃとれませ

861 名前:んでした
どうやって取るんでしょうか?
[]
[ここ壊れてます]

862 名前:デフォルトの名無しさん mailto:sage [2017/09/16(土) 18:46:19.62 ID:GikFp8do.net]
もはやnode.jsの話じゃないな
node.js使わずchromeでやってるんだからわざとやってるだろ
まずはjavascript prototypeでググれ
それで分からないことはどこかのjavascriptスレで聞け

863 名前:デフォルトの名無しさん mailto:sage [2017/09/16(土) 21:08:44.37 ID:qXL21HWW.net]
?????????????????

864 名前:デフォルトの名無しさん mailto:sage [2017/09/16(土) 21:17:16.00 ID:fS24z2RM.net]
バッドノウハウ多すぎ!!!!!!!!

865 名前:デフォルトの名無しさん mailto:sage [2017/09/17(日) 09:39:33.63 ID:FQFctnSq.net]
>>843
chromeのコンソールでconsole.logした方が解析しやすいじゃん バカなの?

866 名前:デフォルトの名無しさん mailto:sage [2017/09/17(日) 18:24:28.11 ID:bBG8AL9E.net]
>>842
getOwnPropertyNamesは名前の通りOwnなプロパティしか取れん
for-inは継承を遡るが、列挙不可にされてるプロパティは取れん
ビルトインプロパティは基本的に列挙不可されているので
結局for-inでも殆どOwnなプロパティしか取れん
それを取るには、__proto__を繋げていって一つ一つにgetOwnすること

867 名前:デフォルトの名無しさん [2017/10/16(月) 07:08:15.82 ID:x77nDEIG.net]
https://nodejs.org/en/
の、8.7.0 Current をインストールしました。
で、
node.jsを立ち上げ、
.helpは通るのですが、
$ node
や、
$ node -v
は、
SyntaxError: Unexpected identifier
になってしまいます。
どうすればいいでしょうか?



868 名前:デフォルトの名無しさん mailto:sage [2017/10/16(月) 07:58:53.13 ID:BYvG9erR.net]
コマンドプロンプト・PowerShell で、
node -v
とコマンドを打つと、そのコマンドの実行ファイルを、OS が探す必要がある

つまり、その実行ファイルの場所を、環境変数PATH などで、OSに教える必要がある

環境変数PATHに指定していなくても、
絶対・相対パスで指定すれば、実行できるはず

Windowsのパス(PATH)の読込順 と起動される順番
takuya-1st.hatenablog.jp/entry/20110116/1295188903

869 名前:デフォルトの名無しさん [2017/10/16(月) 08:26:32.58 ID:x77nDEIG.net]
>>849
レスありがとうございます。
では、どうやればいいのでしょうか?
node.exeは↓にあります。
"C:\Program Files\nodejs\node.exe"

870 名前:デフォルトの名無しさん mailto:sage [2017/10/16(月) 08:44:36.72 ID:H4ZQF/LB.net]
これはひどい

871 名前:848 [2017/10/16(月) 09:14:18.01 ID:x77nDEIG.net]
>>851
インストールした、
node.jsのコマンドプロンプトみたいな所に、
..helpを打てば、
↓を返してくれる。

.break Sometimes you get stuck, this gets you out
.clear Alias for .break
.editor Enter editor mode
.exit Exit the repl
.help Print this help message
.load Load JS from a file into the REPL session
.save Save all evaluated commands in this REPL session to a file

しかし、
$ node -vを打っても、
エラーになってまう。
これは不思議なことだと思わないかね?

872 名前:デフォルトの名無しさん mailto:sage [2017/10/16(月) 11:09:57.97 ID:FZpcfz8T.net]
思わんよ
お前だからな

873 名前:デフォルトの名無しさん mailto:sage [2017/10/16(月) 15:17:21.46 ID:kN1YFDVK.net]
なんでそんなレベルでnode.jsインストールしようと思ったんだろ

874 名前:848 [2017/10/16(月) 19:08:59.31 ID:x77nDEIG.net]
>>854
https://www.webprofessional.jp/beginners-guide-node-package-manager/
このページの黒い部分でいうと、
> console.log('Node is running');

> .help
これは、
実行出来るのです。

この状態でバージョン確認をするにはどうすればいいのでしょうか?

875 名前:デフォルトの名無しさん mailto:sage [2017/10/16(月) 19:46:31.00 ID:MK8giXG1.net]
>>850
C:\Program Files\nodejs\node.exe

876 名前:デフォルトの名無しさん mailto:sage [2017/10/16(月) 20:38:10.52 ID:VwEzpL/B.net]
>>855
> process.version

877 名前:848 [2017/10/16(月) 20:56:45.49 ID:x77nDEIG.net]
>>857
お、ありがとうございます。 通りました。
じゃ、私の環境で↓のコマンドが使えるようにするにはどうすればいいのでしょうか?ちなみに、バージョンは、v8.7.0でした。
$ which node
$ node --version



878 名前:デフォルトの名無しさん mailto:sage [2017/10/16(月) 21:14:41.96 ID:VwEzpL/B.net]
>>858
849が書いてくれてるようにPATHが通ってないんだろうからPATHを通す
パスの通し方とかでググって
コマンドプロンプト使う時の基本だから

879 名前:デフォルトの名無しさん mailto:sage [2017/10/16(月) 21:32:19.39 ID:dl4DNYXd.net]
windowsとlinuxの違い、コマンドプロンプトとnode起動後のコンソールの違いが理解できてないっぽいな
$は入力するものじゃないしwitchコマンドはwindowsにはない

880 名前:デフォルトの名無しさん mailto:sage [2017/10/16(月) 23:57:03.44 ID:BYvG9erR.net]
例えば、コマンドプロンプトで、
where notepad
と打てば、メモ帳の実行ファイルの場所が、表示される

where node
と打てば?

881 名前:848 [2017/10/17(火) 01:14:58.50 ID:ISfP7NF8.net]
皆さん、レスありがとうございます。感謝します。

ちなみに、
コマンドプロンプトで、
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
と、打つと、コマンドプロンプトがどこかに行って戻って来ません。

882 名前:デフォルトの名無しさん mailto:sage [2017/10/17(火) 02:57:58.14 ID:HKb0WdLR.net]
npm の仕組みについても、検索して調べて!
思い付きで、色んなコマンドを打っても、動かない

C:\Windows\system32>node --version

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

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

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

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

OS の仕組みについて、何年も勉強していなければ、
環境構築・システム運用はできない

883 名前:848 [2017/10/17(火) 03:06:35.78 ID:ISfP7NF8.net]
つか、わかった。
スタートメニューに色々出来るけど、
nodejs
と、
Node.js command prompt
があって、
Node.js command prompt
を立ち上げるべきを、
nodejs
を立ち上げてたのだと思う。

884 名前:848 [2017/10/17(火) 03:18:05.69 ID:ISfP7NF8.net]
gihyo.jp/dev/serial/01/nodejs/0001
つかこれの、真ん中ぐらいの、
>を実行すると,コンソールに「foo」と出るのが確認できます。
これが確認出来ました。
ありがとうございました。

885 名前:848 [2017/10/17(火) 03:22:08.69 ID:ISfP7NF8.net]
しかし、nodejsも、Node.js command prompt も、
どっちもコマンドプロンプトみたいなもんだけど、ドコが違うんですかね?

886 名前:デフォルトの名無しさん mailto:sage [2017/10/17(火) 10:55:35.86 ID:tiaX2vSA.net]
それを調べて糧にするのがお前の役目だろ

887 名前:848 [2017/10/17(火) 11:29:12.47 ID:ISfP7NF8.net]
node.jsを使ってjQueryチックにWebサイトをクローリングする方法
https://liginc.co.jp/programmer/archives/4848
これが半分ぐらい出来たんですけど、
これをちゃんとやるには自分のpcにmysqlがインストールされてないとダメなんですかね?



888 名前:848 [2017/10/17(火) 11:30:33.39 ID:ISfP7NF8.net]
私的には.csvのデータで十分なんだけど。

889 名前:デフォルトの名無しさん mailto:sage [2017/10/17(火) 15:55:26.78 ID:G9wCIPXR.net]
プログラミングの学習が目的ではないみたいだし
潔く諦めてGUIのスクレイピングツールを使え

自分で学ぼうとしないやつを
いつまでも相手にするほどみんなヒマじゃないから

890 名前:デフォルトの名無しさん [2017/10/17(火) 19:05:26.58 ID:OFQ0CJNG.net]
>>868
SQLiteおぬぬめ

891 名前:デフォルトの名無しさん mailto:sage [2017/10/17(火) 22:43:19.58 ID:HKb0WdLR.net]
MongoDB, Redis など、NoSQL系DB で良い

892 名前:デフォルトの名無しさん [2017/10/18(水) 11:32:51.58 ID:RFRRa2Hk.net]
KVS最強

893 名前:デフォルトの名無しさん mailto:sage [2017/10/23(月) 09:02:07.81 ID:2VeGFVWI.net]
windows10をFCUしたら
node-notifierと言うライブラリが機能しなくなってしまいました。
呼び出すとエラーも出さずに消えてしまいます。
どこを確認すべきでしょうか?

894 名前:デフォルトの名無しさん [2017/10/23(月) 12:01:05.02 ID:bv0ZvSeb.net]
クリーンなPCで検証

895 名前:デフォルトの名無しさん mailto:sage [2017/10/25(水) 17:27:32.02 ID:wXo7lKEI.net]
コレってnode.jsでGoogle Assistantを呼び出せるの?

https://github.com/actions-on-google/actions-on-google-nodejs

896 名前:デフォルトの名無しさん mailto:sage [2017/11/02(木) 09:20:24.78 ID:qskrUnxL.net]
>>876
書いてあるだろ

897 名前:デフォルトの名無しさん mailto:sage [2017/11/02(木) 18:07:41.82 ID:bLT6lfrr.net]
expressってproductで使われてんの?



898 名前:デフォルトの名無しさん mailto:sage [2017/11/02(木) 18:13:56.96 ID:RicVp4Qn.net]
ツイッターもインスタグラムも使ってるよ

899 名前:デフォルトの名無しさん mailto:sage [2017/11/02(木) 19:46:41.59 ID:cCQG4q+b.net]
koa使おうぜ

900 名前:デフォルトの名無しさん mailto:sage [2017/11/03(金) 09:20:41.79 ID:tbSBcvrg.net]
複数人体勢のexpressのほうが安心
koaは作者一人だから不安だから使わない

901 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 21:16:07.71 ID:tccVqtCS.net]
koaってexpressのミドルウェアそのまま使える。async await大好きマンに取ってはたまらない1品

902 名前:デフォルトの名無しさん [2017/12/01(金) 17:33:36.24 ID:Tsnnxn0j.net]
koa2+reactjsのdynamicで快適。 ejsやjadeを使わず、javascriptのみですっきり。
いいで〜 koa2+react。

903 名前:デフォルトの名無しさん [2017/12/01(金) 20:58:49.48 ID:dEoQxhVh.net]
>>883
うむ

904 名前:デフォルトの名無しさん mailto:sage [2017/12/02(土) 05:34:12.07 ID:IJ6GXagf.net]
サーバサイドでreactってどういう意味?

905 名前:デフォルトの名無しさん mailto:sage [2017/12/02(土) 08:11:38.76 ID:zj58uySz.net]
ssrじゃね?

906 名前:デフォルトの名無しさん mailto:sage [2017/12/02(土) 12:17:05.09 ID:JzqKudWn.net]
ssrっていらなくね?

907 名前:デフォルトの名無しさん mailto:sage [2017/12/02(土) 13:37:03.76 ID:iXlrNF2g.net]
ツイッターもインスタもNetflixもやってるぞ



908 名前:デフォルトの名無しさん [2017/12/04(月) 01:47:10.73 ID:sdiyRgle.net]
メテオとかいうFWって死んじゃったんですか?

909 名前:デフォルトの名無しさん mailto:sage [2017/12/04(月) 20:47:28.49 ID:EJPuWg3p.net]
全体的に名前空間で仕切られてないこのグダグタnodeライブラリ。
10年後も、その時の最新のnodeで使えるんなほんまに。

910 名前:デフォルトの名無しさん mailto:sage [2017/12/06(水) 19:36:04.95 ID:GgcfIolq.net]
ん? SSRに何か問題でも?

911 名前:デフォルトの名無しさん mailto:sage [2017/12/06(水) 20:20:27.85 ID:MyyqK5wy.net]
鯖側の負荷が増える

912 名前:デフォルトの名無しさん [2017/12/12(火) 22:19:31.72 ID:gHkSE4eN.net]
node.js難しいっていうイメージだったけど、
JavaScriptがウンコだったってことみたい

なんでこんなに散らかってしまったんだ
せめて書き方を統一しろよ

913 名前:デフォルトの名無しさん mailto:sage [2017/12/12(火) 23:49:28.08 ID:gqOvSsDA.net]
>>893
ESLint使えば?

914 名前:デフォルトの名無しさん mailto:sage [2017/12/12(火) 23:57:54.77 ID:8VRWkTHd.net]
なんでって20年以上も歴史のある言語で産まれたときとは用途も規模も全然違ってるからな

915 名前:デフォルトの名無しさん mailto:sage [2017/12/13(水) 00:01:47.40 ID:pDkqMCU5.net]
JavaScriptは言語仕様が使いにくいとは思う
小規模なら使いやすいかというと全然そんなことない

916 名前:デフォルトの名無しさん mailto:sage [2017/12/13(水) 23:32:59.98 ID:dQY+CYRc.net]
言語仕様に難しいところはない。
難しいと思う所言ってみな?

917 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 01:12:30.76 ID:JyoUxFOL.net]
プロトタイプベースなところ
使いやすいと思ったことがない



918 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 01:32:58.14 ID:LEbaYuuB.net]
プロトタイプなんて使うことないだろ?

919 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 05:58:01.99 ID:fEY/FzHm.net]
>>893
うむ

920 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 05:59:02.65 ID:fEY/FzHm.net]
>>896-897
仕様が難しいというのと馬鹿の扱いが難しいのは別の話だな

921 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 10:39:14.62 ID:y5gxd1px.net]
ES2015に従えばプロトタイプってことを意識することはないかな。
既存のクラスにメソッド追加したいときとかなら意識するけども。

922 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 20:55:43.66 ID:LEbaYuuB.net]
>>902
prototypeを使って簡単なことをするのと
prototypeを使って複雑なことをするのでは
当たり前だけど難易度が違うのさ

既存のクラスにメソッドを追加するのは、
prototypeの簡単な使い方に含まれる
意味はわからなくてもいいから、こういう書き方をすればOK
程度の説明だけでもクラスにメソッドを追加することはできる

923 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 02:24:03.53 ID:OK9q/vji.net]
クラスだけじゃなく手続き型っぽくも書いたり
はたまた関数型っぽくも書いたりするとこがどう書いていいか分からなくて難しいってことなんじゃない?

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

俺はそういう点こそが好きだけどね

924 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 07:18:04.72 ID:18KhAamS.net]
OOPが常に最適解ではないというのは衆知の事実だしな。
俺は基本関数型風で書くのが好みで、データ型にtsのinterfaceが使えれば充分だ。

925 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 11:04:58.73 ID:vwC80Nto.net]
node-redを使ってるんですが
フローって作成するとメモリに常駐するんですか?
作れば作るほど実行してなくても他のフロー処理速度は遅くなっていきますかね?

926 名前:デフォルトの名無しさん [2017/12/15(金) 17:13:59.28 ID:WQPs5rl9.net]
パイプ演算子追加されれば関数型っぽく書くのが楽になるんだけどね
現状じゃ括弧のネスト増えるからとてもじゃないけど書けない

927 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 17:30:06.75 ID:nGMqwgOn.net]
関数の合成も完結に書きたいしimmutableなデータ構造もネイティブにサポートして欲しいし
そしたらパターンマッチも不可欠だし
関数型への道は険しい
Elm使え



928 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 21:51:56.77 ID:OK9q/vji.net]
ES提案中のパイプライン演算子は当分奇抜な草案扱いだったが
|>await|>など提案によりStage1の中ではHotになりつつある
あとは?を絡めた関数定義を詰めるのと、Mixin周りの提案が勝負
そこをもう少しでも詰めればStage2まではいけるが、Stage3にはawaitの様なパンチが必要
頑張れ

929 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 22:47:15.05 ID:L7gVN0RS.net]
>>907
パイプだろうがドットだろうが大差ないだろw
どうせ一行が長くなったら改行するんだから


つまり

foooooooooo()
| baraaaaaaaaaaaa()
| bazzzzzzzzzzzzzzz()

でも

foooooooooo()
.baraaaaaaaaaaaa()
.bazzzzzzzzzzzzzzz()

でも同じだろと

foo() | bar() | baz() でも
foo().bar().baz() でも同じだろと

930 名前:デフォルトの名無しさん [2017/12/15(金) 23:37:27.58 ID:WQPs5rl9.net]
>>910
いや、メソッドじゃなくて関数
bazzzzzzzzzzzzzzz(baraaaaaaaaaaaa(foooooooooo()))

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

メソッドはクラスインスタンスに対してしか使えないけど、クラスインスタンスだとprototypeの関係でObject.assignなどが使えなくて不変プログラミングがやりにくいからね

931 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 23:54:55.14 ID:SRfxT1c6.net]
>>910
>>911
パイプの方が可読性高いだけでもいいわ
メソッドチェーンは読みにくくなるから嫌い

932 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 00:14:10.39 ID:plaGBrRo.net]
https://www.npmjs.com/package/babel-plugin-pipe-operator

babel-plugin-pipe-operator
Overload the pipe operator (|) to provide Elixir/F#/Shell-like behavior

これ使えば今すぐ使えるのかな?

933 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 00:18:33.91 ID:ArLhqftT.net]
A | B | C

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

1. Aが最初の1KBを処理する
2. 1の出力を、Bが処理する。同時に、Aは次の1KBを処理
3. 2の出力を、Cが処理する。同時に、A, Bは次の1KBを処理

934 名前:デフォルトの名無しさん mailto:sage [2017/12/22(金) 09:15:33.73 ID:8f8y8qIA.net]
これの第2引数って{anyway:true}みたいなのを渡せばいいんですか?
https://i.imgur.com/0gmvmSq.png

935 名前:デフォルトの名無しさん mailto:sage [2017/12/22(金) 09:37:16.18 ID:8f8y8qIA.net]
合ってました自己解決しまひた

936 名前:デフォルトの名無しさん [2017/12/22(金) 21:07:59.68 ID:dt9jytk4.net]
socket.io 2.0.4で指定したルーム内の全てのソケットもしくは
ソケットIDを取るにはどうしたらいいですか?
socket.io 0.9.6ではio.sockets.clients(ルーム名)で取れていたのですが、
同じようなことを2.0.4でしたいです。

937 名前:デフォルトの名無しさん [2017/12/22(金) 23:11:18.78 ID:dt9jytk4.net]
自己解決しました。
socket.ioのgithubに行ったら詳しいドキュメントがありました。



938 名前:デフォルトの名無しさん mailto:sage [2017/12/27(水) 08:03:34.44 ID:hw44w6Qj.net]
JavaScriptエンジン向けのポータブルなCommonJS実装ってどこかにないかな。
ピュアJSのモジュールシステムというとRequireJSがあるけど、あっちはいわゆるAMDだよね。
CommonJS使いたいとなるとやっぱりBrowserifyやWebpackとかしかないのかな。

939 名前:デフォルトの名無しさん mailto:sage [2017/12/27(水) 14:23:29.84 ID:LFgX9gcs.net]
一年くらい前にブラウザのSW上に実装した記事をどっかで見たな

940 名前:デフォルトの名無しさん mailto:sage [2017/12/29(金) 09:12:07.30 ID:LK61JUUB.net]
console.logを自前で実装しているんだけど、%cの扱いをどうしようか迷っている。
一応解釈だけして引数を無視するのと%c自体無視するのとどっちがいいかな。
Node.jsは後者みたいだけど。

941 名前:デフォルトの名無しさん mailto:sage [2017/12/29(金) 12:21:26.51 ID:LK61JUUB.net]
あぁそうか、Node.jsを前提しているコードで%cを使うことはまずないだろうから
とりあえず前者にしておけばいいんだな。

942 名前:デフォルトの名無しさん mailto:sage [2017/12/31(日) 21:37:45.29 ID:9jWP4uLU.net]
クライアントサイドjavascriptのスレってどこにあるんですか?
WebProg板にあるのかと思いきやあっちもサーバサイドだし

943 名前:デフォルトの名無しさん mailto:sage [2017/12/31(日) 22:08:43.06 ID:beY0Iyii.net]
これ
mevius.2ch.net/test/read.cgi/tech/1417749547/

944 名前:デフォルトの名無しさん mailto:sage [2017/12/31(日) 23:43:06.40 ID:B2mtcXzM.net]
web制作板

945 名前:デフォルトの名無しさん mailto:sage [2018/01/01(月) 08:44:35.42 ID:oE47bkuE.net]
ありがとん
3つめもあるとは想定外でした

946 名前:デフォルトの名無しさん mailto:sage [2018/01/07(日) 11:33:35.99 ID:pcvnpBsv.net]
child_process.spawnSync()はプロセスの終了を待ち合わせるけど、workerにはそういう
スレッドのjoin()のように待ち合わせる機能はないのかな。

947 名前:デフォルトの名無しさん mailto:sage [2018/01/10(水) 11:06:47.57 ID:AcbVN6ZK.net]
workerってWebWorkerのこと?
それならSharedArrayBufferとAtomics APIでできるよ
ただCPU脆弱性問題で今は無効にされてる



948 名前:デフォルトの名無しさん mailto:sage [2018/01/10(水) 22:10:28.26 ID:oFasEgAN.net]
サーバーサイドでそれ無効にする必要ある?
Webブラウザは様々なサイトのコードを実行するから
対策が必要だろうが
サーバーにハッカーのコードを仕込まれたらその時点でもう終わってるじゃん

949 名前:デフォルトの名無しさん mailto:sage [2018/01/10(水) 22:13:57.25 ID:NAqv0WmW.net]
>>929
いつの間にサーバーOS=シングルユーザーOSになったんだよw
OSっていうのは複数の人が自分の権限で自分のコードを実行するもんだろ

950 名前:デフォルトの名無しさん mailto:sage [2018/01/10(水) 22:57:46.99 ID:PVJi42Un.net]
自鯖レン鯖ならともかくコンテナやVPSでメモリ共有する環境もあるしな

951 名前:デフォルトの名無しさん mailto:sage [2018/01/10(水) 23:40:19.20 ID:ejeCAGvR.net]
他のプロセスのメモリー内容まで簡単に読みに行けちゃうのはメルトダウンだけだよね?

952 名前:デフォルトの名無しさん mailto:sage [2018/01/11(木) 00:49:54.75 ID:PrVjW9Sz.net]
blog.trendmicro.co.jp/archives/16735 読んだだけの
大雑把な理解だが、

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

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

スペクターはアプリが覗かれないように対策する必要があるが
その必要があるのは、例えばブラウザのような同じブラウザ上で
別々の人が作った任意のコードを実行するようなものだから
攻撃の前提を満たすのが難しい

953 名前:デフォルトの名無しさん mailto:sage [2018/01/11(木) 01:45:26.94 ID:zDr2JTOQ.net]
>>933
この記事はいいね。

> その必要があるのは、例えばブラウザのような同じブラウザ上で
> 別々の人が作った任意のコードを実行するようなものだから
この場合のコードは実行コードの意味だろうから、つまりは同じDLLをリンクしてたらアウトで、
Linuxならlibstdcやlibmとか、ほぼ全部のアプリが使ってるだろうしアウトじゃね?と思うが。
同じアプリである必要はないはずよ。

954 名前:デフォルトの名無しさん mailto:sage [2018/01/11(木) 09:18:34.65 ID:gamfIHe5.net]
Spectreの2つの亜種のうち
1つは同じプロセスの内容だけを覗けて
もう一つは他プロセスの内容を見れるが、スーパーユーザー権限が必要って書いてあるようだけど?

955 名前:デフォルトの名無しさん mailto:sage [2018/01/11(木) 14:51:21.63 ID:xvA5vOWN.net]
Spectreは2つ組み合わせて使わないと意味がない

956 名前:デフォルトの名無しさん mailto:sage [2018/01/13(土) 20:38:05.97 ID:iJyUFjEF.net]
一度でもasync/awaitを使ってしまうと、もう元には戻れない
楽すぎるぅぅぅぅぅ

957 名前:デフォルトの名無しさん mailto:sage [2018/01/13(土) 20:47:08.73 ID:/br76GKn.net]
便利やろ?babelさまさまやで



958 名前:デフォルトの名無しさん mailto:sage [2018/01/13(土) 22:03:52.60 ID:xaNBQnI8.net]
単発非同期にはasync-awaitで十分便利だけど
イベントのようなものを扱うのはまだまだ難しい
まず値が複数あるということ
一応for-awaitはあるけどreturn時に特別な最終処理を行いたい場合は
結局done:trueを見ないといけないから使えない
また、イベントって標準on〜も結構な工夫がされてるけど、
イベントが起きた直後にセットしたハンドラで受け取りたいかどうかっていう問題がある
この辺り最近ずっと個人的に研究してるが容易ではない

959 名前:デフォルトの名無しさん mailto:sage [2018/01/24(水) 19:25:24.68 ID:BUPTScBe.net]
最近node.jsを勉強しています。
socket.ioで質問なのですが、何か非同期処理していて接続が切れた場合、再接続したら
その処理完了のメッセージは受け取れるのでしょうか、それとも接続が切れた段階で、キャンセルされますか?

960 名前:デフォルトの名無しさん [2018/01/24(水) 19:35:05.25 ID:yxm2qYfd.net]
>接続が切れた

もう少し詳しく

961 名前:デフォルトの名無しさん mailto:sage [2018/01/24(水) 19:42:51.25 ID:BUPTScBe.net]
スマホでアクセスポイントが変わったりした場合、一回切れますよね?

962 名前:デフォルトの名無しさん [2018/01/25(木) 11:23:58.90 ID:zPND7U3x.net]
同じ切れると言っても切れてる時間の長さとか再接続でIPも変わるときと変わらない時でも違うんじゃね

963 名前:デフォルトの名無しさん [2018/01/25(木) 11:26:00.59 ID:zPND7U3x.net]
TCPかUDPかとかでも違うんだろうけど
socket.ioがどっちかは忘れた

964 名前:デフォルトの名無しさん mailto:sage [2018/01/25(木) 19:29:10.53 ID:Jk7QmDIY.net]
socket.ioってクッキーみたいので、セッションID維持してて
切れても安心みたいな感じじゃないんですか?

965 名前:デフォルトの名無しさん mailto:sage [2018/01/26(金) 05:42:52.58 ID:XyEr3Esl.net]
やってみろ

966 名前:デフォルトの名無しさん mailto:sage [2018/02/01(木) 14:15:55.68 ID:zVItOEu ]
[ここ壊れてます]

967 名前:q.net mailto: node.jsって人気ないな〜
解説ブログは古いし、間違ってるし、
こんなんで作ったらバグだらけやん
[]
[ここ壊れてます]



968 名前:デフォルトの名無しさん [2018/02/01(木) 14:21:50.49 ID:XMp5TkVS.net]
はげそれ
ブームは去った

969 名前:デフォルトの名無しさん mailto:sage [2018/02/01(木) 19:35:39.75 ID:3VWe7l68.net]
>>947
今は何が流行ってんの?

970 名前:デフォルトの名無しさん mailto:sage [2018/02/01(木) 20:52:06.68 ID:6/askoF7.net]
unity

971 名前:デフォルトの名無しさん mailto:sage [2018/02/01(木) 21:34:46.61 ID:lSl6eIsr.net]
golangに持って行かれたね

972 名前:デフォルトの名無しさん mailto:sage [2018/02/02(金) 07:24:52.85 ID:E+B1ekpI.net]
結局、どう使うべきかわからないというのが問題なんじゃないかな
拡張機能があるけど、個々の機能はわかるけど、うまくピースがはまらないイメージ

973 名前:デフォルトの名無しさん mailto:sage [2018/02/02(金) 07:41:34.72 ID:sggyuymU.net]
juliaもそうだった

974 名前:デフォルトの名無しさん mailto:sage [2018/02/02(金) 19:30:20.18 ID:E+B1ekpI.net]
プログラムの設計思想がぴんとこない
非同期で時間のかかることやらせるならsocket.ioは必須なの?
切断したときにどう復旧させるの?
自分は何者で何をしてたかの情報をうまく組み合わせる必要ない?

975 名前:デフォルトの名無しさん mailto:sage [2018/02/02(金) 22:13:57.33 ID:ISpZH99S.net]
どう使うべきかじゃなくて
自分が作りたいものを作る時に何を使うかだろ

976 名前:デフォルトの名無しさん mailto:sage [2018/02/03(土) 07:40:05.67 ID:dVw1phCl.net]
そこが想像できない、よくわからないから抜け出せないので、使う候補に上がってこない

977 名前:デフォルトの名無しさん mailto:sage [2018/02/03(土) 09:00:51.63 ID:C+glEnt3.net]
世界的な事例のほとんどは

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

その前段のbffにnode.js

これだからモノリシックなシステムには無縁



978 名前:デフォルトの名無しさん [2018/02/03(土) 09:43:35.86 ID:qWVkS+Es.net]
それだとgolangに負けるな

979 名前:デフォルトの名無しさん mailto:sage [2018/02/03(土) 09:48:29.04 ID:q+B7XjZz.net]
bffでnode.js使うところはssrもやってるからgoは選ばれないんじゃね
結局そういうアーキテクチャの要請があってプロダクトが選ばれる

980 名前:デフォルトの名無しさん mailto:sage [2018/02/03(土) 10:20:29.26 ID:k4L1joBU.net]
bffとssrって関係あるかねぇ?

981 名前:デフォルトの名無しさん mailto:sage [2018/02/03(土) 10:30:11.33 ID:lOPjGEYQ.net]
isomorphic javascriptでググれ

982 名前:デフォルトの名無しさん mailto:sage [2018/02/04(日) 10:07:02.98 ID:iEv00Bkz.net]
SNSのバックエンドをExpressオンリーにするのって無理かな

983 名前:デフォルトの名無しさん mailto:sage [2018/02/04(日) 14:58:55.91 ID:WVo2r3Ik.net]
>>962
phpでもrubyでもいけるのにexpressじゃ無理かもしれないと思った理由は?

984 名前:デフォルトの名無しさん mailto:sage [2018/02/04(日) 15:27:37.16 ID:B22IaXtA.net]
一つのexpressにHTTPdからAPI鯖まで全部詰め込んでもいいんだぞ

985 名前:デフォルトの名無しさん mailto:sage [2018/02/04(日) 21:03:28.89 ID:iEv00Bkz.net]
>>963
あまりそういう話を聞かないから
不都合全く無いの?

986 名前:デフォルトの名無しさん mailto:sage [2018/02/04(日) 21:25:10.40 ID:UUFlqCAw.net]
expressはあんまり高水準のフレームワークじゃないしormはsequelizeくらいしかないしメリットなさげじゃね

987 名前:デフォルトの名無しさん mailto:sage [2018/02/05(月) 07:30:15.23 ID:GXsl78kw.net]
node.jsでウェブサーバやる利点って何?超使いづらいんですけど



988 名前:デフォルトの名無しさん mailto:sage [2018/02/05(月) 12:00:21.59 ID:ozQGTy2c.net]
使う側は意識することないだろ

989 名前:デフォルトの名無しさん mailto:sage [2018/02/06(火) 06:03:09.31 ID:xat7U2Z1.net]
meteor.jsとか見てるとjsのメリットすごいけどね

990 名前:デフォルトの名無しさん mailto:sage [2018/02/06(火) 06:07:24.84 ID:BAsI0MB0.net]
ssrでしょ
うん……

991 名前:デフォルトの名無しさん mailto:sage [2018/02/07(水) 09:30:35.59 ID:5vmiY3qq.net]
>>967
一人しか利用しないなら使わなくていいんじゃないの。

992 名前:デフォルトの名無しさん mailto:sage [2018/02/07(水) 18:55:54.33 ID:GPioIT5w.net]
素朴な疑問だけど
ここのみんなは node.js でどんなサービス作ってるの?

993 名前:デフォルトの名無しさん mailto:sage [2018/02/07(水) 19:02:22.99 ID:ob9DrvK1.net]
特定業種にiPadごと配るアプライアンス的なサービスのBff
なので事例には出しにくいけどバッチリ使ってる

994 名前:デフォルトの名無しさん mailto:sage [2018/02/07(水) 19:11:11.32 ID:GPioIT5w.net]
>>973
そのiPadに入ったアプリが通信する先のサービスってこと?
あとBffって何ですか?
無知ですまん

995 名前:デフォルトの名無しさん mailto:sage [2018/02/07(水) 19:19:56.30 ID:IITgqAFh.net]
Backends for Frontends
https://samnewman.io/patterns/architectural/bff/

996 名前:デフォルトの名無しさん mailto:sage [2018/02/07(水) 20:36:41.69 ID:GPioIT5w.net]
ありがとう、翻訳して読んだりしました
難しい
gateway とか dispacher的なもの?
nodeとnginxの関係を見た時nginxがbffの位置づけ?
見当違いならほっといてください

997 名前:デフォルトの名無しさん [2018/02/11(日) 15:29:51.01 ID:6yH3qsLl.net]
socketを使う必要がってnode+expressがやりやすそうと考えて
独学でnode.js始めて(独学)1年くらいです

sessionにredis使ってまして
通常のhttpとsocketでの共有が面倒なのですが
皆さん、どんな方法使ってます?



998 名前:デフォルトの名無しさん mailto:sage [2018/02/11(日) 15:43:11.62 ID:xSFjw/ao.net]
socketってwebsocketのこと?
node.jsではnetモジュールが提供するtcp用のapiが本来のsocketだから変な略し方すると話が通じないよ
websocketならhttpで始まるからセッションは普通に共有できるはず
websocketを使うのにsocket.ioを使ってるならそれも書いた方がいい
最近はsocket.io使ってる人が少なそうだからレスが付くかはわからんけど

999 名前:デフォルトの名無しさん mailto:sage [2018/02/11(日) 16:01:04.40 ID:6yH3qsLl.net]
>>978
ありがと&ごめん
socket.ioを使ったwebsocketでした

websocket側からsessionのハンドリングに自分は

var sockeio = require('socket.io')(server, {'transports': ['websocket']});
var io = sockeio.of(ns).on('connection', function(socket) {
/** socket.request.session;
* で拾える
*/
});
てなことしてまして、拾うのは楽なんですが
session save するのに
redisの該当データをupdate(set)するってことしてます
これ普通ですか?アホですか

あとsocket.io使われなくってるのは何故?

1000 名前:デフォルトの名無しさん mailto:sage [2018/02/11(日) 16:29:55.16 ID:d+jiviOC.net]
こういうユーティリティで便利なのがないかさがしてみるのも一手
https://www.npmjs.com/package/express-socket.io-session

昔はwebsocket使えないブラウザが多かったから他のプロトコルにフォールバックしてくれるsocket.ioが重宝されてたらしい
今はwebsocket使える前提でいいからフォールバックは不要なので豊富な機能が不要ならwsとかシンプルなモジュールで十分って感じ
再接続とか考えるとsocket.io便利そうだけどね

1001 名前:デフォルトの名無しさん mailto:sage [2018/02/11(日) 16:40:57.21 ID:6yH3qsLl.net]
>>980
express-socket.io-session 良さそ気

wsっかぁ、
自分を慰める理由が欲しいんだけど
room機能実装するならwsじゃなくてsocket.ioが楽?

1002 名前:デフォルトの名無しさん mailto:sage [2018/02/11(日) 16:46:20.51 ID:XUA6USjD.net]
roomとか必要ならsocket.ioでいいんじゃない
よく聞くのはそれと再接続目当てな希ガス

1003 名前:デフォルトの名無しさん mailto:sage [2018/02/11(日) 16:47:48.35 ID:A30L58fq.net]
お題が単に「room機能をとにかく楽に実装したい」ならgun.jsとかのほうが楽やで

1004 名前:デフォルトの名無しさん mailto:sage [2018/02/11(日) 16:49:45.40 ID:6yH3qsLl.net]
thankYou!!!
生きてく元気ちょっと出た

1005 名前:デフォルトの名無しさん mailto:sage [2018/02/11(日) 18:35:48.00 ID:aqz0aJT4.net]
未だにpython2に依存してるのが残念すぎる

1006 名前:デフォルトの名無しさん mailto:sage [2018/02/11(日) 18:40:40.49 ID:qCYdb3sP.net]
残念おっぱいそん2

1007 名前:デフォルトの名無しさん mailto:sage [2018/02/11(日) 18:57:55.27 ID:A30L58fq.net]
>>985
なーにそれ?くわしく



1008 名前:デフォルトの名無しさん mailto:sage [2018/02/11(日) 19:18:40.58 ID:WzEjvwQn.net]
リアルタイムwebをいじりたいならmeteor.jsに乗っかるのも一つの手

1009 名前:デフォルトの名無しさん mailto:sage [2018/02/11(日) 19:27:38.72 ID:soB6fX+V.net]
ビルドで使ってるgypがpython3に対応してないって話じゃね
開発元のgoogleでは対応済みなん?
まだならnode側じゃどうしょうもない

1010 名前:デフォルトの名無しさん mailto:sage [2018/02/11(日) 19:53:03.30 ID:A30L58fq.net]
issue検索してみたけどgypへの依存なくせやって話もしつこく何回も立ってたんだね

1011 名前:デフォルトの名無しさん mailto:sage [2018/02/11(日) 19:58:05.07 ID:8+fCt4+r.net]
v8のビルドがgypならそれも無理がありそうだがなんか代替案出てるんけ?

1012 名前:デフォルトの名無しさん mailto:sage [2018/02/13(火) 19:06:40.59 ID:X+YiM6Et.net]
今日ジュンク堂行ったらnode.jsの本2つしかなかった。
しかも入門書、やっぱりnode.jsオワコン?
他にwebsocketできるものなんてあるの?

1013 名前:デフォルトの名無しさん mailto:sage [2018/02/13(火) 19:09:35.96 ID:flHxC5Ds.net]
>>992
javaでもc#でも

1014 名前:デフォルトの名無しさん mailto:sage [2018/02/13(火) 19:14:04.34 ID:kAM/OKSF.net]
node.jsは全然オワコンじゃない
es2015,6,7,8と毎年進化していく予定なんだから
むしろこれから盛り上がるってなもんで

1015 名前:デフォルトの名無しさん mailto:sage [2018/02/13(火) 19:20:12.25 ID:X+YiM6Et.net]
同じことやるにしてもjava勉強したほうがいいのかな
C#はやらないけど

1016 名前:デフォルトの名無しさん mailto:sage [2018/02/13(火) 19:21:38.52 ID:esah1bhU.net]
node.jsもjavascriptも毎年大きなバージョンアップが確定だから書籍は出しにくいよなぁ

1017 名前:デフォルトの名無しさん mailto:sage [2018/02/13(火) 19:22:12.35 ID:s321QVV0.net]
>>995
javaやるくらいならc#にしとけ



1018 名前:デフォルトの名無しさん mailto:sage [2018/02/13(火) 19:24:14.62 ID:X+YiM6Et.net]
windowsは使わないのでC#はいらない
dockerをそろそろ勉強しないといけないので、dockerといっしょにjavaでwebsocketもやるかな

1019 名前:デフォルトの名無しさん mailto:sage [2018/02/13(火) 19:26:02.48 ID:WkRgLvef.net]
javaは死につつあるからgoの方がマシかな

1020 名前:デフォルトの名無しさん mailto:sage [2018/02/13(火) 19:26:50.37 ID:WkRgLvef.net]
なお次スレ

1021 名前:1001 [Over 1000 Thread.net]
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 673日 2時間 58分 16秒

1022 名前:過去ログ ★ [[過去ログ]]
■ このスレッドは過去ログ倉庫に格納されています






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<263KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef