- 1 名前:デフォルトの名無しさん [2018/02/13(火) 22:21:33.91 ID:moEhrPrC.net]
- pythonやrubyやPHPと同じ土俵でjavascriptが使えるようになりました。
サーバサイドjavascriptについて語りましょう。 node.js - googleが開発したV8エンジン上で実行できる処理系 nodejs.org/ ayo.js - node.js 互換で Rod の影響からの脱却を目指す処理系 https://github.com/ayojs/ayo Nashorn - Java8 からRhinoに代わって同梱されているJavaScriptエンジン www.oracle.com/webfolder/technetwork/jp/javamagazine/Java-JA17-Nashorn.pdf ayo.js の経緯 https://web.archive.org/web/20170821212745/https://github.com/nodejs/TSC/issues/310 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 4【io.js】 mevius.5ch.net/test/read.cgi/tech/1460359714/ 【node.js】サーバサイドjavascript 3【io.js】 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 名前:デフォルトの名無しさん [2020/08/08(土) 23:58:34.55 ID:OT1M6D83.net]
- ライブラリですね。
- 450 名前:デフォルトの名無しさん [2020/08/09(日) 00:40:28 ID:sb6ynJ/q.net]
- 違います
- 451 名前:デフォルトの名無しさん [2020/08/09(日) 00:51:05.32 ID:2tff8pgk.net]
- データベースですね。
- 452 名前:デフォルトの名無しさん mailto:sage [2020/08/09(日) 01:20:28 ID:8UfVx4ij.net]
- 違います
- 453 名前:デフォルトの名無しさん [2020/08/09(日) 01:48:00.71 ID:2tff8pgk.net]
- ゴミですね。
- 454 名前:デフォルトの名無しさん mailto:sage [2020/08/09(日) 12:06:37 ID:4gz4Sy4n.net]
- そ、違います
- 455 名前:デフォルトの名無しさん mailto:sage [2020/08/09(日) 13:10:04.80 ID:HdBz3xHm.net]
- nude.js ですね
- 456 名前:デフォルトの名無しさん [2020/08/09(日) 16:47:11.71 ID:sb6ynJ/q.net]
- https://www.moongift.jp/2012/02/20120211/
nude.jsは画像をCanvasで読み込んでヌード画像か否かを判定するソフトウェアです。 裸が見たい!たくさんの画像の中からとにかく裸を見たい!と思う人はnude.jsを自動実行してみると幸せになれるかも知れません。 https://github.com/pa7/nude.js/
- 457 名前:デフォルトの名無しさん [2020/08/11(火) 00:54:04.11 ID:jdRsH5YI.net]
- これまでの非同期対策手段の
やって欲しかったのはこういうことじゃないんだよ感 がやばい 本来求めてるのはコールバックの記述ないようにして 欲しいのと 余計な関数定義無しで処理を書きたいということ なのに Promiseやasync awaitがやってるのは 非同期処理をネストしなくて良くするだけで 肝心のコールバック記述や 余計な関数定義自体はなくならず、 それどころかこれらを使うと更にコードが複雑に なって可読性が下がってしまう。 そういうゴチャゴチャした部分を無くして欲しいんだよ。
- 458 名前:デフォルトの名無しさん mailto:sage [2020/08/11(火) 02:13:08.66 ID:DrUL4lPZ.net]
- >>457
具体的に理想系を書いてくれるか?
- 459 名前:デフォルトの名無しさん mailto:sage [2020/08/11(火) 06:51:02.02 ID:KjgiWsfP.net]
- WScript.sleep(1000);
- 460 名前:デフォルトの名無しさん mailto:sage [2020/08/11(火) 09:44:42 ID:DyHWpKfR.net]
- >>458
ボンッキュッボンッ!
- 461 名前:デフォルトの名無しさん mailto:sage [2020/08/11(火) 12:08:29 ID:HwJhgroD.net]
- 互換性ぶっ壊してでもコールバックなAPIをどうにかしてくれ
ってことならDenoじゃね
- 462 名前:デフォルトの名無しさん mailto:sage [2020/08/11(火) 12:31:29.28 ID:RcrtMjNU.net]
- >>457はコールバックだけじゃなくてPromiseも否定してね?
どういうものを期待してるのかわからんが、少なくともdenoじゃ解決にならんかと。
- 463 名前:デフォルトの名無しさん mailto:sage [2020/08/11(火) 13:28:07.94 ID:gDej+7HY.net]
- ならGoだろうな
コールバックも非同期処理もいらない さようなら
- 464 名前:デフォルトの名無しさん mailto:sage [2020/08/11(火) 13:50:34 ID:OsUriXGV.net]
- どうせメッセージパッシングに文句垂れるな決まってる
- 465 名前:デフォルトの名無しさん mailto:sage [2020/08/11(火) 13:51:16 ID:OsUriXGV.net]
- s/垂れるな/垂れるに/
- 466 名前:デフォルトの名無しさん [2020/08/11(火) 15:38:26.65 ID:jdRsH5YI.net]
- >>458
ごめんちょっとコールバック入っちゃったけど こんな感じがいい 「await」という単語は他に思い浮かばなかったから 真似しただけで別の単語でもなんでもいい 実際の「await」の処理とは無関係 await setTimeout( ()=>{}, 1000); console.log('1秒経過しました'); コールバック引数が欲しい場合 ver data = await $.ajax({省略}).done(); console.log('レスポンスを受信しました'); console.log(data);
- 467 名前:デフォルトの名無しさん [2020/08/11(火) 15:42:24.62 ID:jdRsH5YI.net]
- ↑varをverと書いてしまいました。
- 468 名前:デフォルトの名無しさん mailto:sage [2020/08/11(火) 15:50:28.89 ID:RcrtMjNU.net]
- 結局Promise化すれば解決する話に見えるが
中途半端なコールバックの存在が謎。
- 469 名前:デフォルトの名無しさん mailto:sage [2020/08/11(火) 16:25:16.36 ID:E31y9T9f.net]
- Promiseとasync/awaitで解決済みだよなぁ
const sleep = ms => new Promise(resolve => setTimeout(resolve, ms)) って用意するなりimportするなりしておけば await sleep(1000); console.log('1秒経過しました'); これだけやんけ $.ajaxとか書いちゃう知恵遅れさんだからしょうがないか
- 470 名前:デフォルトの名無しさん mailto:sage [2020/08/11(火) 17:12:35.72 ID:dI29r3/p.net]
- あんまりPromiseの事わかってなくて批判しちゃった感じかな。
- 471 名前:デフォルトの名無しさん mailto:sage [2020/08/11(火) 17:34:48.50 ID:DrUL4lPZ.net]
- >>467
スコープないのかよ ゴミくそ
- 472 名前:デフォルトの名無しさん mailto:sage [2020/08/11(火) 19:26:37.90 ID:HwJhgroD.net]
- 数行のコードじゃ意図が読み取り辛いけど
非同期関数を同期にしたいってコトなら絶対無理
- 473 名前:デフォルトの名無しさん mailto:sage [2020/08/11(火) 19:33:26.30 ID:GZz3NG8W.net]
- 非同期関数を同期関数のように呼び出せるのがasync/awaitだけどな
動作の話じゃなくてソースの見た目の話だろどうせ そんなこと気にするよりlet/const覚える方が先だぞ
- 474 名前:デフォルトの名無しさん mailto:sage [2020/08/12(水) 07:56:55.71 ID:XuneBSJh.net]
- promiseもasync/awaitも何も分かってないけど批判してたということだけは非常によく分かった
- 475 名前:デフォルトの名無しさん [2020/08/14(金) 21:41:29 ID:Fc7pCCli.net]
- どうでもいいけど
独自の概念や用語をバンバン押し付けてくる フレームワークは ゲロ以下の匂いがプンプンするぜぇーって思うわ PHP系の糞フレームワークに多い
- 476 名前:デフォルトの名無しさん mailto:sage [2020/08/14(金) 21:47:18.13 ID:970Aew80.net]
- >>475
逆に、独自の概念や用語を押し付けてこないフレームワークって例えば何?
- 477 名前:デフォルトの名無しさん mailto:sage [2020/08/14(金) 21:50:10.65 ID:B7DyCr2o.net]
- アセンブラ
- 478 名前:デフォルトの名無しさん [2020/08/14(金) 21:53:03.39 ID:Fc7pCCli.net]
- >>476
やっぱexpressかな? ララベルとかyiiとかは ファサードとかDIコンテナとか ゴミみたいな余計な用語出てきて腹立たしいわ
- 479 名前:デフォルトの名無しさん mailto:sage [2020/08/14(金) 21:56:59 ID:970Aew80.net]
- >>478
ファサードもDIコンテナも、フレームワーク独自の用語じゃなくてごくごく初歩的な一般用語では?
- 480 名前:デフォルトの名無しさん [2020/08/14(金) 22:07:25 ID:Fc7pCCli.net]
- >>479
そうだね。webとは関係ないよね webとは関係ない設計上の概念を Webフレームーワークが押し付けてくるのはおかしいよね フレームワークはルーティングと HTMLレンダだけやってりゃいい DBにもビジネスロジックにも出しゃばってくるべきでは無い とくにJavaをパクってるだけのPHPでそんな内容 吐き気がするに決まってるだろ
- 481 名前:デフォルトの名無しさん mailto:sage [2020/08/14(金) 22:24:17.70 ID:B01JOFDh.net]
- DIは、最初はめんどくさい仕組みだなって思うけど、
ある日突然納得感に包まれるぞ。
- 482 名前:デフォルトの名無しさん [2020/08/18(火) 21:29:27.81 ID:ZCkQ8Dn9.net]
- MySQLとかのDBアクセス
同期的にやってくれるライブラリないんか? fsはSync版あるやん
- 483 名前:デフォルトの名無しさん mailto:sage [2020/08/18(火) 21:50:58.81 ID:uzsO+4Q7.net]
- async/await使えばいいやろ
fsのsyncなんてお遊びかツールでしか使えんし
- 484 名前:デフォルトの名無しさん mailto:sage [2020/08/18(火) 21:58:10.75 ID:wak8Bz4V.net]
- もうjavascriptだけで出来ないことはない!
javascript最強! javascript最高! 今、javascriptの伝説が始まる!!!!!!
- 485 名前:デフォルトの名無しさん [2020/08/19(水) 04:18:53 ID:vidjSvBe.net]
- キッショ
- 486 名前:デフォルトの名無しさん [2020/08/20(木) 19:53:59.17 ID:KMfIHaw0.net]
- 真偽値が非同期になるとヤバイ
trueかfalseのどちらかかと 思っていた変数が pendingになっててif文の分岐に ミスがあったとかマジで勘弁 セキュリティやトランザクション処理が クリティカルな部分でこんなことやられたら叶わん
- 487 名前:デフォルトの名無しさん mailto:sage [2020/08/20(木) 20:05:16 ID:t5R+TL7j.net]
- ごめんよく分からないので
コードで頼む
- 488 名前:デフォルトの名無しさん mailto:sage [2020/08/20(木) 20:09:16 ID:AoU9HO21.net]
- 低脳はプログラマやめとけ
- 489 名前:デフォルトの名無しさん mailto:sage [2020/08/20(木) 20:16:29.65 ID:X1nNk3cj.net]
- >>486
それマルチスレッドの話じゃね?「非同期」つってもjavascriptのそれとは意味が違う。
- 490 名前:デフォルトの名無しさん mailto:sage [2020/08/20(木) 20:32:39 ID:tyNv301J.net]
- pendingは普通にPromiseの話やろ
Promiseを理解せず非同期のコード書くのが悪い
- 491 名前:デフォルトの名無しさん [2020/08/20(木) 20:41:23.02 ID:qjxJt4Hn.net]
- >>489
node.jsのスレだからJavaScriptの話なんだが nodeってシングルスレで合ってる? あと素人で申し訳ないが if文がある時もそれ以降のコードに勝手に進んじゃうの? たとえば if(非同期の真偽値メソッド() ){ return; } console.log('ifに該当したら逐次処理ならここには到達しないはず'); 逐次処理ならelseなしで処理を抜けることが出来るが、 非同期処理だと条件分岐も待ってくれないの? こういうのがかなり怖い
- 492 名前:デフォルトの名無しさん [2020/08/20(木) 20:44:17.20 ID:qjxJt4Hn.net]
- >>490
非同期のコードが書くの悪いって僕も書きたくないです。 でもデフォルトで非同期の関数ばかりですよね? ちょっとでも油断すると非同期になっちゃうんです もちろんasyncやawaitつけてるけど ついつけ忘れるといつの間にか非同期になってるんです。
- 493 名前:デフォルトの名無しさん mailto:sage [2020/08/20(木) 20:49:28.75 ID:AoU9HO21.net]
- await付け忘れるヤツが悪い
TypeScriptで型チェックしとけ
- 494 名前:デフォルトの名無しさん mailto:sage [2020/08/20(木) 21:17:24 ID:t5R+TL7j.net]
- >>491
if(await hoge())するだけ 何も難しいことない
- 495 名前:デフォルトの名無しさん [2020/08/20(木) 22:05:57.37 ID:wmqy4S/J.net]
- まぁそこは同期が基本から非同期が基本に頭切り替えないとね
- 496 名前:デフォルトの名無しさん mailto:sage [2020/08/20(木) 22:43:19.84 ID:tyNv301J.net]
- >>491
nodeに限らずJSは基本シングルスレッド JSで本格的にコード書くなら シングルスレッドでどうやって非同期や並行処理を実現してるのかを 最低限の知識として知っておく必要がある setTimeout(fn, 0)で渡したfnがどのタイミングで実行されるのかと同じ 少し詳しめのチュートリアルならだいだい解説してある
- 497 名前:デフォルトの名無しさん [2020/08/21(金) 00:43:07.71 ID:CMx879FZ.net]
- とは言え今ではスレッドも使えるから上手く利用したいところ。
シングルスレッドにこだわってコールバックの中で時間のかかる処理しちゃったら本末転倒。
- 498 名前:デフォルトの名無しさん mailto:sage [2020/08/21(金) 01:18:26.76 ID:RmDQK783.net]
- プロセスも使えるぞ。
せっかくだからV8 isolateも使いたいけどどうやるんだっけ…
- 499 名前:デフォルトの名無しさん mailto:sage [2020/08/21(金) 01:47:45.18 ID:fPne1yUC.net]
- workerが別スレッドのisolate
- 500 名前:デフォルトの名無しさん [2020/09/01(火) 20:38:22.47 ID:QR4OvP6I.net]
- nodeはバッチ処理にはマジで向いてないよな
ループ中に非同期発生すると ループ番号の順序性があべこべになるとか ヤバすぎる ループ外グローバル変数への 数値溜め込み処理とかどうなるんだこれ あと完了したと思ってた処理が 完了表示されただけで 実はまだ非同期で動作してたとかありそうで 怖すぎる
- 501 名前:デフォルトの名無しさん mailto:sage [2020/09/01(火) 20:42:12.06 ID:I2eVqLbl.net]
- 無能w
- 502 名前:デフォルトの名無しさん [2020/09/01(火) 20:43:25.87 ID:tH3NhyKR.net]
- >>500
アホ過ぎるwww
- 503 名前:デフォルトの名無しさん mailto:sage [2020/09/01(火) 20:58:34.78 ID:z4ASdXsC.net]
- >ループ中に非同期発生すると
まるで自然現象とか天災みたいな言い方
- 504 名前:デフォルトの名無しさん [2020/09/01(火) 21:12:04.15 ID:QR4OvP6I.net]
- すまん、俺は無能なんだわ
バッチ処理は終わるまで時間がかかるから プログレスバーとして 進捗報告として データベースの進捗状況テーブルへ 進行度をアップデートしてんだわ 毎ループ進捗報告しなくていいから %で余り算して定期的に 進捗をアップデートしてんだわ ところがその進捗報告DBアクセスで 非同期が発生してループの順序が乱れる 進捗状況の進行度が進んだり戻ったり トリッキーに変動するんだわ でもループの最後まで到達して完了すると 全てのデータ整合してんだわw なぜ中間状態だけこんなにトリッキーなのか謎
- 505 名前:デフォルトの名無しさん mailto:sage [2020/09/01(火) 21:24:55.53 ID:I2eVqLbl.net]
- コード書くのやめろ
- 506 名前:デフォルトの名無しさん mailto:sage [2020/09/01(火) 21:59:23 ID:usFRsaVF.net]
- 進捗の書き込みはシリアルにやればいいよね?
「80%完了」の後に「70%完了」が来ても無視すればいい
- 507 名前:デフォルトの名無しさん [2020/09/01(火) 22:02:04.20 ID:QR4OvP6I.net]
- >>506
無視するようにしてるんだよ whereで大小比較して 更新する数の方が小さかったら更新されないように してる でもDB上の数値が減るんだよ。何故だ?
- 508 名前:デフォルトの名無しさん mailto:sage [2020/09/01(火) 22:05:22.51 ID:3AXmEbq5.net]
- コードも無しで言われても知らんわ
- 509 名前:デフォルトの名無しさん mailto:sage [2020/09/01(火) 22:28:22.77 ID:usFRsaVF.net]
- >>507
シリアルに書いてないからでしょ 今実行中の進捗報告の書き込みが完了してから 次の進捗報告の書き込みをする 理解できないほうが謎
- 510 名前:デフォルトの名無しさん mailto:sage [2020/09/02(水) 02:59:56.27 ID:bHRnrATQ.net]
- 7月入ってからageながら変なこと書いてんの同じ人っぽいな
挫けないでがんばれよ
- 511 名前:デフォルトの名無しさん mailto:sage [2020/09/02(水) 12:32:41.24 ID:U40YU3HI.net]
- 並列処理しなければ良い
1つが、確実に終わってから、 次のものを処理する
- 512 名前:デフォルトの名無しさん mailto:sage [2020/09/02(水) 13:19:02.32 ID:FrAP3fk+.net]
- 回答者まで同じ内容を繰り返し始めたw
- 513 名前:デフォルトの名無しさん [2020/09/02(水) 21:31:48.71 ID:C0O9Iab7.net]
- >>504
こうなる原因が今日特定出来た ループ自体が多重に並列に動作してた 1つのfor文が動いてるんだと思ってたら ログをよくよく見たらfor文自体が 3つくらい並列で動いてた 勝手に多重実行になった原因は、 MySQLが処理しきれなくなってタイムアウトが 発生したあと nodeが自動で(promiseの仕様?)最初から リクエストの処理をリトライするようで ピタゴラスイッチのアルゴリズム体操見たいに なってたわw 初歩的な質問ですが サーバに飛んできたリクエストだけを中断するには exitが正解ですか? returnが正解ですか? res.end(); ですか? サーバ自体は止めたくありませんが ある関数自体を中断するだけでなく そのリクエストだけ大元から全部中断したいです
- 514 名前:デフォルトの名無しさん mailto:sage [2020/09/02(水) 22:07:44.16 ID:m9UvO5Rn.net]
- お前がコード書くのをやめる、が正解
- 515 名前:デフォルトの名無しさん mailto:sage [2020/09/07(月) 13:52:39.16 ID:KQEAaFWf.net]
- どなたか、次の JS のコードの結果が、2,5,3 ではなく、2,3,5 になっている理由を説明出来ますか?
console.log( "0" ); var sample = new Promise( function(resolve, reject) { console.log( "1" ); setTimeout(function() { console.log( "2" ); resolve(); console.log( "3" ); }, 1000); }); console.log( "4" ); sample.then( function(value) { console.log( "5" ); }); console.log( "6" ); [結果] 0 1 4 6 2 3 5
- 516 名前:デフォルトの名無しさん mailto:sage [2020/09/07(月) 14:38:17 ID:UUesL9I9.net]
- 説明できますかって何だよ挑発してんのかよ
resolve()は必ずイベントループに戻ってからthen()のコールバックが呼ばれるからに決まってるだろがボケカス マイクロタスクキューでも調べやがれポンコツ
- 517 名前:デフォルトの名無しさん [2020/09/07(月) 15:25:12.91 ID:Egt+Qwmp.net]
- 0
4 1 6 2 3 5 とか 0 4 6 1 2 3 5 にならない?
- 518 名前:デフォルトの名無しさん mailto:sage [2020/09/07(月) 15:45:30.49 ID:UUesL9I9.net]
- ならない
Promiseコンストラクタはコールバックを即時実行する MDN executor 関数は Promise 実装により resolve 関数と reject 関数が渡されて即座に実行されます (Promise コンストラクターが作成したオブジェクトを返すよりも前に executor は呼び出されます)。
- 519 名前:デフォルトの名無しさん mailto:sage [2020/09/07(月) 17:09:51 ID:3uGG3SyO.net]
- >>515
コールスタックが空にならないと、各種キューに入ってる処理は実行されない 最初にconsole.log(“6”);まで処理したらスタックが空になる その状態でsetTimeoutのタイマーが発動してキューにコールバック関数が入る スタックが空なのでキューの1番目にあるsetTimeoutのコールバック関数がスタックに積まれて呼び出される この関数がreturnするまではスタックは空にならないので それまではキューに入った処理を実行するタイミングはない console.log(“3”);まで実行してreturnしたらスタックが空になるので その後、各種キューに入ってる処理があれば実行される
- 520 名前:デフォルトの名無しさん mailto:sage [2020/09/07(月) 17:21:12.28 ID:KQEAaFWf.net]
- 試してみたんですが、setTimeout()で指定している関数の中で、
resolve(111); resolve(222); resolve(333); としてから、 sample.then( function(value) { console.log( "5, value=", value ); }); とすると、 5, value = 111 とだけ表示されて、222, 333 の分は表示されないんですが、どういった 理由なのでしょう。
- 521 名前:デフォルトの名無しさん [2020/09/07(月) 17:33:56.06 ID:Egt+Qwmp.net]
- お前はもう死んでいる
- 522 名前:デフォルトの名無しさん mailto:sage [2020/09/07(月) 17:39:40.90 ID:UUesL9I9.net]
- 最初にresolve()した時点でそのPromiseの値は確定するから
つかスレに書き込む暇があるならドキュメントでも何でもいいから学習してPromiseがどういうもんか理解してから試せよ Promiseってのは「将来確定する"値"」を表現するもんなんだよ
- 523 名前:デフォルトの名無しさん mailto:sage [2020/09/07(月) 17:52:24.52 ID:neZOTIA1.net]
- 一旦解決したPromiseを再度変更出来たらそれは改竄と呼ぶべきだな
reject(111); resolve(222); reject(333); これは成功したのか失敗したのかどっちよ?
- 524 名前:デフォルトの名無しさん mailto:sage [2020/09/07(月) 18:07:19.89 ID:ieMFgaPK.net]
- これ近頃よく見る相手にしちゃダメなやつだな
- 525 名前:デフォルトの名無しさん mailto:sage [2020/09/07(月) 18:08:35.44 ID:UUesL9I9.net]
- 最初のreject()で失敗が確定する
Promiseの状態はpending→settledと変わる settledにはfulfilledとfailedがある resolve()でfulfilled、reject()でfailedになる
- 526 名前:デフォルトの名無しさん [2020/09/08(火) 00:01:18.48 ID:8muSUg7S.net]
- nodeの非同期を同期的にやりたい時のコードって
promise async await resolve thenが複雑に入り組んで 意図した動きになった時はめっちゃ過剰なコードになるよね 精神的にヘトヘトに疲れて 清書する元気も起きん promiseやresolve変数がたくさん生成しまくって 名前つけるのもめんどうになって p1とかr3みたいなのが沢山できてる 特にforループの中に非同期使うときは地獄 早くmysqlを同期的にクエリ投げられる ライブラリ出してください。何でもしますから。
- 527 名前:デフォルトの名無しさん mailto:sage [2020/09/08(火) 01:45:13 ID:1Wq/gxeB.net]
- だからお前はプログラマやめろって
才能なさすぎ
- 528 名前:デフォルトの名無しさん mailto:sage [2020/09/08(火) 02:32:28 ID:o0Kum352.net]
- >>526
nodeも非同期も関係なくお前がめっちゃ過剰なコード書いてるだけだからな
- 529 名前:デフォルトの名無しさん mailto:sage [2020/09/08(火) 12:00:40.54 ID:gglleEZ2.net]
- ライブラリは需要があればとっくに作られてる
今現在無いのはつまりそういうことだ
- 530 名前:デフォルトの名無しさん mailto:sage [2020/09/08(火) 12:14:59.78 ID:1sQ8nqM1.net]
- そこの無能が探してもいないだけで無いわけじゃないだろ
例えばあるライブラリのREADMEから const conn = await mysql.createConnection({ database: test }); const [rows, fields] = await conn.execute('select ?+? as sum', [2, 2]); await conn.end(); トランザクションも await connection.beginTransaction(); 〜 await connection.commit(); と書ける
- 531 名前:デフォルトの名無しさん [2020/09/08(火) 13:42:27.36 ID:8muSUg7S.net]
- select文を投げるのは
selectの結果が欲しいから投げる訳であって 結果が取得できる前に 後続のコードに勝手に動かれたら困るのは 当たり前だよなあ? DBアクセスで非同期って何がメリットが あるのか分からない。 それにnodeの概念はバカの新人に言葉で説明しにくいんだよ あいつぜってー非同期とか理解出来ねえぞ
- 532 名前:デフォルトの名無しさん mailto:sage [2020/09/08(火) 13:47:44.03 ID:op+kwVtr.net]
- 新人に言葉で説明できないバカ
新人かわいそう
- 533 名前:デフォルトの名無しさん mailto:sage [2020/09/08(火) 13:57:56.32 ID:c4WmASUK.net]
- > 勝手に動かれたら
何も理解してないことがよく分かるw
- 534 名前:デフォルトの名無しさん mailto:sage [2020/09/08(火) 14:51:08.13 ID:QV2EnsJl.net]
- お前の場合はMySQL一つしか使わないのが当たり前かもしれないが世の中にはシャードされた複数のMySQLにアクセスしたりキャッシュのRedisにアクセスしたり検索エンジンのelasticsearchにアクセスしたりいろんなことをしなきゃいけないアプリがあったりするわけ
Nodeではこれらは非同期だから特別なことをしなくてもたやすく並行アクセスできる 同期で並行アクセスしようとすると複数スレッド使って待ち合わせすることになるから非同期より簡単にできるわけではない
- 535 名前:デフォルトの名無しさん [2020/09/08(火) 16:00:24.51 ID:8muSUg7S.net]
- >>534
ああ、アクセスするのは簡単やと思うわ 問題はその結果の始末を付けるのが大変だと思うわ なんかいい書籍あるか?
- 536 名前:デフォルトの名無しさん mailto:sage [2020/09/08(火) 17:40:30 ID:Qj0BclxS.net]
- 本当に本当にダメなヤツだなぁ(呆れ)
アクセスってのは接続して要求を投げて結果を受け取ってそれを処理して接続を閉じるまでの一連に決まってるだろ >>530の例だって後始末まで書いてあるのに全然大変じゃないだろが
- 537 名前:デフォルトの名無しさん mailto:sage [2020/09/08(火) 19:19:05.95 ID:gglleEZ2.net]
- とりあえずオライリーでも読んだらいいんじゃない
https://www.amazon.jp/dp/4873118735/
- 538 名前:デフォルトの名無しさん mailto:sage [2020/09/09(水) 06:42:52 ID:N3PFvdWI.net]
- スレ的には真っ当な質問なのに当たり強過ぎでしょ
- 539 名前:デフォルトの名無しさん mailto:sage [2020/09/09(水) 08:44:06.86 ID:7Dxn++Hv.net]
- 質問じゃなくて文句
- 540 名前:デフォルトの名無しさん mailto:sage [2020/09/09(水) 17:07:03 ID:SFlZHAWP.net]
- 謙虚に質問してればレスも優しかったかもよ
- 541 名前:デフォルトの名無しさん mailto:sage [2020/09/09(水) 21:03:51 ID:OFM+73CL.net]
- 分からないだけならともかく延々と自分以外を貶めつつ無能を晒してたからなぁ
- 542 名前:デフォルトの名無しさん mailto:sage [2020/09/09(水) 21:12:34.50 ID:XGuez22g.net]
- それな
× node.js が悪い × 非同期が悪い × promise が悪い × async/awaitが悪い × 新人がバカ ○ ID:8muSUg7S がバカ こうだからな
- 543 名前:デフォルトの名無しさん [2020/09/10(木) 14:55:06.91 ID:rLZBXCmM.net]
- グレたωωω
- 544 名前:デフォルトの名無しさん [2020/09/10(木) 19:56:10 ID:FWP0gZB+.net]
- clusterでマルチプロセスしようとしたんだけど
「EADDRINUSE(ポートが既に使われている)」 エラーがどうしても出てしまいます。 もちろん既に稼働しているnodeはなく、 fork元のapp.jsでlistenしているのと同じポート 子プロセスでまたbindしようとして失敗しているようで 子プロセスは外部からリクエストを受けるような ものではなく、重い処理をコア分散させて並列処理したいだけです 子プロセスにポート割り当てが必要な理由がよく分かりませんが 恐らく親プロセスと子プロセス間の通信 とかに使うんでしょうか? 子プロセスのポート割り当て回避か、 親プロセスと別ポートを割り当てる方法はありますか?
- 545 名前:デフォルトの名無しさん mailto:sage [2020/09/10(木) 20:18:09 ID:VafdMbGz.net]
- > 子プロセスは外部からリクエストを受けるようなものではなく
それならclusterモジュールは必要なくね clustetは複数のプロセスを使って大量のリクエストを捌くためのもの ただの子プロセスならchild_processのメソッドを使う
- 546 名前:デフォルトの名無しさん [2020/09/10(木) 20:21:53 ID:C+K2oJgr.net]
- >>545
なるほど、助かりました じつはworker_threadsも試してみて同じ エラー出たので child_processが正解でしたか これだとポートは関係ない?
- 547 名前:デフォルトの名無しさん mailto:sage [2020/09/10(木) 20:43:38.94 ID:oBZEl9rg.net]
- clusterだと親は子を産むだけの役割じゃなかったっけ
- 548 名前:デフォルトの名無しさん mailto:sage [2020/09/10(木) 20:45:06.67 ID:oBZEl9rg.net]
- あとworker_threadsで同じエラーが出るのはいくらなんでもおかしい
- 549 名前:デフォルトの名無しさん [2020/09/14(月) 20:42:48.98 ID:JdQogpR1.net]
- >>544 の者ですが
今日これをデバッグしてました。 clusterでもwoker_threadsfでも child_processでも 「EADDRINUSE」が発生しました 発生するタイミングは子プロセスを生成した時でも なく 子プロセスでMySQLに対しのコネクション確立時でもなく 確立したDBコネクションからクエリを投げるコード を実行する時に発生しますが なぜこのタイミングなのか分かりません ここで気になったのが nodeでフロントユーザーに対し 80番ポートをlistenしていて nodeがローカルのMySQLにアクセスする時 nodeのクライアントポートはフロントと おなじ80を使うのでしょうか? それとも別のランダムポートを取得してきて使うのでしょうか?
|

|