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/
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を使うのでしょうか? それとも別のランダムポートを取得してきて使うのでしょうか?
550 名前:デフォルトの名無しさん mailto:sage [2020/09/14(月) 20:55:49.60 ID:AayaioGL.net] 説明と全然違う事象じゃねーの せめてエラーメッセージとスタックトレース貼れ
551 名前:デフォルトの名無しさん [2020/09/14(月) 20:55:58.86 ID:JdQogpR1.net] 続きですか もう少し調べてみると 「EADDRINUSE」が発生するタイミングは MySQLに対しコネクション確立後 SQLを投げる時で間違いないと思いますが、 エラーのスタックとレースを見ても 何かのハンドラから駆動されており自分の書いたコードでは ありません。 nodeかexpressかmysqlモジュールのハンドラ だと思います 子プロセスはローカルのMySQLに対して 接続して読み書きするだけで フロントとのやり取りは一切ありませんが 生成元の親プロセスはExpressのapp.js で立ち上げてるwebアプリです
552 名前:デフォルトの名無しさん [2020/09/14(月) 20:56:11.94 ID:JdQogpR1.net] 不思議なのが子プロセスで mysqlとコネクション確立までは失敗せずに 動作し、SQLを投げる段階で なぜか大元の「app.js」をもう1つ起動しようとしており app.jsはもう既に起動してるので、 listenポート重複により上記のエラーが発生するわけです 暫定対応で動くようにはなりましたが、 なぜローカルのDBアクセス時にapp.js実行する 動きをするのかの原因がまだ分かっていません webとは関係ないはずの子プロセスのファイルを 単体でコマンドで実行した場合も Expressのベースディレクトリにある 「app.js」が実行されていることが分かりました。 自身のコードではこのようなことをしてないので フレームワークかモジュールの内部処理だと思いますが、 知っている方がいましたら教えてください。
553 名前:デフォルトの名無しさん [2020/09/14(月) 20:57:39.11 ID:JdQogpR1.net] >>550 すみません、もう帰宅してしまったのと 機密事項で怒られるのでスタックトレースは貼れません
554 名前:デフォルトの名無しさん mailto:sage [2020/09/14(月) 21:14:49.11 ID:AayaioGL.net] > 単体でコマンドで実行した場合も > Expressのベースディレクトリにある > 「app.js」が実行されていることが分かりました。 clusterも何も関係ねーじゃんwww 断言するがフレームワークもモジュールもmysqlも関係なくてお前のバグだから真面目に仕事しろ 子プロセスから再現に関係ない部分を削除しまくって最小限のここで見せられるコードになるまで書き込まなくていいよ
555 名前:デフォルトの名無しさん mailto:sage [2020/09/21(月) 23:41:10.99 ID:h9hvsVjr9] この時代に生きててSNS発信を頑張らないやつはアホだ。 https://www.youtube.com/watch?v=TPMNmuWQm_o 【事例付き】YouTuberは最強の副業である件について。 https://www.youtube.com/watch?v=wB8hNuNVoIw&t=267s 【初心者向け】YouTubeの始め方・稼ぎ方を徹底解説! https://www.youtube.com/watch?v=YEw-a8qlADM 【貧者の工夫で戦え】ガラケーだっていい。YouTube始めるのにパソコンはいらない! https://www.youtube.com/watch?v=jYdWfjjzD7Y YouTubeを伸ばすコツ【5つの本質論/初心者向けのセミナーです】 https://www.youtube.com/watch?v=fn-LxP9Unmc 【悲報】YouTuberはマジで難しいので、ほぼ挫折すると思う【無理ゲー】 https://www.youtube.com/watch?v=iKREw5p0Yqc
556 名前:デフォルトの名無しさん mailto:sage [2020/10/03(土) 14:17:11.74 ID:l4QjehZB.net] https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q14232251614?sort=1&page=2 abiko tetuってやつヤバすぎ
557 名前:デフォルトの名無しさん mailto:sage [2020/10/17(土) 18:10:22.96 ID:cX3MrjsP.net] フォルダ全体をコピーしたくて fs-extra のcopySync()を使うために const fse = require('fs-extra'); としたら、 internal/modules/cjs/loader.js:968 throw err; ^ Error: Cannot find module 'fs-extra' というエラーが出ます。 npm install fs-extra や npm install -g fs-extra を試しましたが、途中で警告が出たりして、結局、元のエラーは直りません。 直す方法はありますでしょうか?
558 名前:デフォルトの名無しさん mailto:sage [2020/10/17(土) 18:39:14.64 ID:cX3MrjsP.net] >>557 結論的には、 $ npm install -g fs-extra $ set NODE_PATH=%AppData%\npm\node_modules としてから、 node xxxx.js とすると直りました。
559 名前:デフォルトの名無しさん mailto:sage [2020/10/17(土) 23:48:03.55 ID:5XNVi7jP.net] Windows?
560 名前:デフォルトの名無しさん mailto:sage [2020/10/19(月) 16:19:09.43 ID:faSV5MEm.net] # Fatal error in , line 0 とか見慣れぬエラーで落ちててビビって調べたらv14のバグか
561 名前:デフォルトの名無しさん mailto:sage [2020/10/25(日) 03:29:13.70 ID:xG/xcmJA.net] import って mjsにしないといけないし
562 名前:デフォルトの名無しさん mailto:sage [2020/10/25(日) 03:30:20.11 ID:xG/xcmJA.net] 途中送信すまん
563 名前:デフォルトの名無しさん mailto:sage [2020/10/25(日) 04:23:13.46 ID:Xs0QdE0/.net] mjsにしないといけないから何なんだよ気になるだろ… 因みにpackage.json弄れば.jsをESM扱いにはできる
564 名前:デフォルトの名無しさん mailto:sage [2020/10/25(日) 13:32:05.91 ID:xG/xcmJA.net] node v15にしたからmjsにして requireを全部importに変更したらpuppeteerがimportできなくてまたrequireに戻した
565 名前:デフォルトの名無しさん mailto:sage [2020/10/26(月) 06:48:46.11 ID:AP4vuhmG.net] 下記のモジュールを使用してHTMLソースからタグを全て取り除く処理を作っているのですが、タグを取り除いてくれません。 ES6で記述されたjavascriptを対応していないブラウザで動作させるために記法を変換してから読み込ませることは知っているのですが、 nodeコマンドで直接実行する場合にもそのような記法の変換などが必要なのでしょうか? ◆モジュール https://github.com/ericnorris/striptags ◆ソース main.js ----- var striptags = require('striptags'); striptags(html); console.log(html); // 取り除かれていない ◆コンソールで書きコマンドを実行 node main.js
566 名前:デフォルトの名無しさん mailto:sage [2020/10/26(月) 13:39:27.76 ID:jWz3MMEX.net] html = striptags(html); じゃないの?
567 名前:デフォルトの名無しさん mailto:sage [2020/10/26(月) 14:12:32.65 ID:AP4vuhmG.net] >>566 教えて頂いた方法で取り除かれていることが確認できました。 公開されているソースを確認したら戻り値を受け取るようになっていました。 今後はソースも確認するようにします。 ありがとうございました。
568 名前:デフォルトの名無しさん mailto:sage [2020/10/26(月) 14:44:15.69 ID:/aZJ5myY.net] その前にJavaScriptの勉強をちゃんとすべきでは。。。 JSの文字列は不変って知ってればstriptagsの使い方を知らなくても>>565 の書き方じゃダメってわかったはず
569 名前:デフォルトの名無しさん mailto:sage [2020/10/28(水) 03:46:46.75 ID:Xggm0kAQ.net] Fetchより先にAbortControllerが来るのタイムパラドックス感がある
570 名前:デフォルトの名無しさん mailto:sage [2020/10/28(水) 14:31:46.46 ID:jeoOjGPI.net] node.jsがあればPHPはもういらないよね?
571 名前:デフォルトの名無しさん mailto:sage [2020/10/28(水) 14:45:56.45 ID:Nt7id6vD.net] そんなことはない
572 名前:デフォルトの名無しさん mailto:sage [2020/10/28(水) 23:57:51.70 ID:jeoOjGPI.net] >>571 なぜ?
573 名前:デフォルトの名無しさん mailto:sage [2020/10/29(木) 00:23:44.55 ID:6kIeo5xU.net] rdb扱うのはphpの方が得意やろ
574 名前:デフォルトの名無しさん mailto:sage [2020/10/29(木) 00:35:34.69 ID:Phiv6uZl.net] >>564 v15で試したけど import puppeteer from 'puppeteer' で読み込めてるよ
575 名前:デフォルトの名無しさん [2020/10/29(木) 10:07:34.55 ID:D91L/a15.net] 俺も文法的にはPHPよりもjavascriptの方が好みなので、できれば移行したいんだけど、 URL単位で小物サービスを作る用途がメインなので今でもPHPを使ってしまう。 なんか、node.jsはCGI的に使うのはナンセンスという雰囲気があって、 でも、たまにしか使わない小物サービス毎にポート番号を消費したくない、 と思うと移行できない。 こんな俺にもおすすめなnode.jsの使い方ってある?
576 名前:デフォルトの名無しさん mailto:sage [2020/10/29(木) 10:28:14.20 ID:89EHBpBz.net] レンタルサーバーだといまだにPHPだかんね
577 名前:デフォルトの名無しさん mailto:sage [2020/10/29(木) 11:43:25.35 ID:6uKcySyb.net] >>574 ありがとうございます。 -gでインストールしてたのがいけないっぽいです
578 名前:デフォルトの名無しさん mailto:sage [2020/10/29(木) 16:31:46.11 ID:Phiv6uZl.net] >>575 極々普通にNodeでもルーターから振り分ければいいと思う PHPだってサービスごとにhttpd立てているわけではないっしょ
579 名前:デフォルトの名無しさん mailto:sage [2020/10/29(木) 21:26:42.11 ID:/i1l21sm.net] >>575 無料オンライン格ゲーを作る。
580 名前:デフォルトの名無しさん [2020/10/29(木) 23:24:45.00 ID:D91L/a15.net] >>578 ありがとう、それだ!俺に必要だったものは。 とりあえず、expressを入れればいいのかな? ちょっとやってみる。 >>579 俺にはレベル高すぎ(笑)
581 名前:デフォルトの名無しさん mailto:sage [2020/11/04(水) 19:01:36.37 ID:M+x6liG8u] 【アフィリエイト】ブログで「月100万円稼ぐ方法」を初心者向けにプロブロガーが解説 https://www.youtube.com/watch?v=tnp0oUbg2uc 【実例有り】ブログで月1万円稼ぐまでの具体的な道筋を教える【プロが解説】 https://www.youtube.com/watch?v=S-pk5AmW3g8 【案件も公開】ブログで月20万円稼ぐ方法の全て。具体的な道筋や戦略も全て公開【雑記でもいけた】 https://www.youtube.com/watch?v=Jiujwjhe300 ブログ収益が大きく伸びた、たった1つのきっかけを話す【ネタバレ:人と会う】 https://www.youtube.com/watch?v=r5cutrq6GO4 ブログで稼ぐ仕組み徹底解説】初心者にもやさしく、丁寧に説明 https://www.youtube.com/watch?v=n4qF7xpL7-M 【ミスるとヤバい】特化ブログと雑記ブログ、どっちがいいの?おすすめの運営方法も解説! https://www.youtube.com/watch?v=sh2v5Uqlo1M 【危険】ブログで稼げずに「挫折」してしまう人の特徴【初心者は特に注意】 https://www.youtube.com/watch?v=W86zHTngRLE
582 名前:デフォルトの名無しさん mailto:sage [2020/11/07(土) 11:58:54.69 ID:fULQIOig.net] npm-run-all で複数のnpm scriptを連続で実行したいんだが、scriptのどれか一つでも 0以外のステータスを返すとそこで処理をやめてしまうのをどうにかできないのかな。 大抵の場合はその仕様でもいいんだけど、たまに、エラーだろうがなんだろうがとにかく 処理しきってしまいたい場合がある。
583 名前:デフォルトの名無しさん mailto:sage [2020/11/07(土) 12:35:45.81 ID:1KfyiAX9.net] >>582 --continue-on-error options.continueOnError = true;
584 名前:デフォルトの名無しさん mailto:sage [2020/11/07(土) 12:39:43.17 ID:fULQIOig.net] さんきう。オプション見落としてた。
585 名前:デフォルトの名無しさん [2020/11/14(土) 16:32:10.90 ID:XA/NhCB9.net] 574です。 $ express --ejs myapp を実行して、routes/index.jsに router.all('/:ejs',(req,res)=>res.render(req.params.ejs,{req:req})) の1行を書き加えただけでかなりphpっぽく使えるね。 ejsファイルを置くだけで、nodeを再起動しなくていいし。 ejsファイルが存在しないときに404 Not Foundじゃなくてエラー画面が出るのが愛嬌だけど。
586 名前:デフォルトの名無しさん [2020/11/18(水) 14:56:07.27 ID:7Ekft4aV.net] おめーら的にdenoってどうすか? 使ったことなさそうだけど
587 名前:デフォルトの名無しさん [2020/11/18(水) 19:28:04.93 ID:Zh0DQZnV.net] ほんのちょっとしか触ってないけど面倒くささが無い npmライブラリが使えないけど init だの install だの package.json だの tsc だのやったりいじったりしないで済むから手軽に感じた 時間が経ってライブラリが充実してくれれば普通に使いやすい環境だと思う
588 名前:デフォルトの名無しさん [2020/11/18(水) 20:11:49.14 ID:7Ekft4aV.net] 期待したいよな 開発者はイケメンだし
589 名前:デフォルトの名無しさん mailto:sage [2020/11/18(水) 21:25:12.52 ID:v8HWKopj.net] npmが使えないからエコシステムが育つまで様子見だな。 @types以前のTypeScriptみたいな。
590 名前:デフォルトの名無しさん mailto:sage [2020/11/19(木) 01:51:43.98 ID:/aqa7r+0.net] io.jsのように良い部分はNode.js側に取り込んでほしいね 最近は複雑さばかりが増しているし
591 名前:デフォルトの名無しさん [2020/11/21(土) 19:45:56.38 ID:ANSb4B/j.net] express 5.xを使ってみたいんだけど、4.17.1になってしまう。 どうすればいいの? $ npm init --y $ npm install express@>=5.0.0-alpha.8 --save npm notice created a lockfile as package-lock.json. You should commit this file. npm WARN e5@1.0.0 No description npm WARN e5@1.0.0 No repository field. $ npm view express version 4.17.1