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


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

【node.js】サーバサイドjavascript 5【Nashorn】



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






[ 続きを読む ] / [ 携帯版 ]

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

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