【node.js】サーバサイドjavascript 5【Nashorn】 at TECH
[2ch|▼Menu]
[前50を表示]
400:デフォルトの名無しさん
20/03/17 15:06:30 hD7fKBeR.net
一番望まれてたところに落ち着いてよかったな

401:デフォルトの名無しさん
20/03/17 19:30:12 kaSPl16J.net
どっちにpublishすればいいねん問題は杞憂に終わったか
でも一強他弱の構図ってあんまりろくなことにならないんだよなぁ

402:デフォルトの名無しさん
20/03/18 00:48:08 DfI3jJn5.net
やーんが頑張るやん

403:デフォルトの名無しさん
20/03/18 00:56:50 Y6R8GMvO.net
やーんはcliだから今の話とはちょっと…
リポジトリ/レジストリがms/github一強過ぎて他の選択肢がーってことよね

404:デフォルトの名無しさん
20/04/17 01:34:09 bDh7CEKX.net
eventsモジュールにいつの間にか生えてるonceメソッド
ずっと前にこのスレで誰かが欲しがってたやつだな

405:デフォルトの名無しさん
20/05/14 13:28:24.58 IPYOGIQF.net
Deno出てきたけどコアモジュールの互換性がないのはきつい
両対応のための中間モジュールが必要になって太る結果にならないといいけど

406:デフォルトの名無しさん
20/05/17 10:25:40.44 f6yoswhG.net
今から始めるならDeno1択ですね

407:デフォルトの名無しさん
20/05/17 12:43:33 D/2Y1Nc3.net
勉強を始めるならそれでもいいがプロダクションで使うのはまだしばらくnode一択だな

408:デフォルトの名無しさん
20/05/17 14:17:45 XFHZbI1n.net
Deno普通に良さそうだな。
地味に名前で喧嘩売ってるのも嫌いじゃない。

409:デフォルトの名無しさん
20/05/17 15:05:29 bDXiWOOM.net
次はおでん

URLリンク(twitter.com)
node
deno
enod
oden <- this has potential
(deleted an unsolicited ad)

410:デフォルトの名無しさん
20/05/17 15:59:01 pmJJj293.net
deno、typescriptネイティブに使えるのが良いな
セキュリティ機能は、早々にalias切って無効化して使いそう。
あと、モジュール読み込みがgolangぽくURIなのは構わんけど、deno.landの信頼性が未知数だ

411:デフォルトの名無しさん
20/05/17 16:38:25.62 XFHZbI1n.net
モジュールがURIなのはgoと同じ轍を踏みそうで気にはなるな。
みんなちゃんと互換性に注意して作って、最初からRESTなAPIのようにv1とかv2とかパスに含めるかな?みたいな猜疑心はある。
ただ、Denoでよくやったと思うのは、バンドラーを積んだ事だと思ってるけど、みんなどう思う?
今までnodeで作ったサーバモジュールをインターネットが繋がってない環境にデプロイするの、結構めんどくなかった?

412:デフォルトの名無しさん
20/05/17 18:40:18.02 ZSTUbran.net
npmのパワーなしに開発なんて出来ない

413:デフォルトの名無しさん
20/05/17 19:13:03 CWw2P5tA.net
arm64用のパッケージがほしいdeno

414:デフォルトの名無しさん
20/05/18 09:17:50 y60azEFm.net
bundleは素晴らしいと思う。
モジュールURIはversion含められるみたいよ

415:デフォルトの名無しさん
20/05/18 10:49:02 3+tKSNz+.net
1.0で指定できなくね?

416:デフォルトの名無しさん
20/05/18 11:19:43.08 AZvqm7LQ.net
armまだなのか。ラズパイで動けばホントに言うことなかったんだけどな。

417:デフォルトの名無しさん
20/05/18 13:49:33 y60azEFm.net
モジュール周り
URLリンク(deno.land)

418:デフォルトの名無しさん
20/05/18 14:53:11 X/pFb7Is.net
やっぱbundle前提か。
しかし、deps.tsは言われてみるとなんと言うことはないんだけど、賢いな。
こいつがっつり使ってみようかな。

419:デフォルトの名無しさん
20/05/18 23:35:57 a6jMS+hP.net
Nodeと併用できないと趣味以外で使う人いないだろうな

420:デフォルトの名無しさん
20/05/19 10:49:44.03 GoO5KVYD.net
node.jsなしでESLintが動かないなら難しい
あとlanguage protocol serverが実装されないと難しい
開発ツールとしてのポジションとなるのは難しいね

421:デフォルトの名無しさん
20/05/19 11:59:16 1h+Pwucu.net
VSCodeのランゲージサーバー動いてるよ

422:デフォルトの名無しさん
20/05/19 12:42:47 482topUH.net
linterはdenoが公式に内蔵する可能性高い
formatterはすでに入ってる

423:デフォルトの名無しさん
20/05/23 17:14:18 0ZrNuMGI.net
nodeにもTLA着たけどREPLじゃ動かんな
仕様ではESM限定だった気がするけどDevTools辺りではできてなかったっけ

424:デフォルトの名無しさん
20/05/24 21:34:47 4uKrfJjq.net
やっぱ周辺ツールが整わないと使いづれえな

425:デフォルトの名無しさん
20/05/27 00:55:30 Qj2nGC3D.net
>>418
URLリンク(youtu.be)

426:デフォルトの名無しさん
20/06/20 18:47:10.97 3Kl5NtPD.net
Why deps.ts and mod.ts is BAD in Deno
URLリンク(dev.to)

427:デフォルトの名無しさん
20/06/23 05:08:14.54 XbLXAbNL.net
こんな感じのコードでresolveは実行されてもpromiseが伝達しないケースがあるんだけど
内部的にはどういう理屈でそうなってるの?
new Promise(function(resolve,reject){
eventemitter.on('hoge', function(){
this.removeAllListeners();
resolve();
});
});

428:デフォルトの名無しさん
20/06/23 08:23:00.68 OtlYTeas.net
お前が間違ってるだけに500億ペリカ

429:デフォルトの名無しさん
20/06/23 09:23:44 jyrEAGC5.net
>>427
伝達されないケースの具体例を出さないとわからんよ

430:427
20/06/24 01:09:40.37 KrEfgFvd.net
実際にはlistenerがasync関数で後から発火した他の同期listener内で先にresolve実行してた
そりゃ伝達しないわ…

431:デフォルトの名無しさん
20/07/03 01:38:35 0cCY6OI/.net
Web API実装の流れでNodeにEventTargetが来たけど使う人いる?
逆なら欲しかったけど

432:デフォルトの名無しさん
20/07/23 10:30:41.88 LlcoMZmJ.net
データベースからデータオブジェクトを
returnする関数をあたかも同期関数のように
ただ実行するだけで戻り値を得られるように作りたいです。
DB情報取得関数定義内でasync await promise
を使ってみましたが
戻り値がpromiseのpendingになってしまったので
仕方なく実行側でもpromiseを生成してラップして
then()を使ってようやく戻り値を得られました。
しかし本来は実行側でpromiseとthenを使うことなく
戻り値を得たかったです
どうすれば良いか教えてください。
あと関数定義内でresolveの実行とreturnがどう違うのか
がわかりません。

433:デフォルトの名無しさん
20/07/23 11:06:39 MBVi+zLE.net
頼むからコードで説明してくれ

似た質問多いけど非同期を同期にすることは不可能
やるなら呼出側の文脈をまるごと非同期にしてawait

434:デフォルトの名無しさん
20/07/23 16:11:17.38 +diZSvZW.net
まるごとも今ならTopLevelAwaitがあるから楽だね
callbackに渡されるresolveはpromiseを解決させるためのスイッチであってreturnではない
Promiseに対する理解が曖昧なままDB扱う処理を書くのは危ないと思う

435:デフォルトの名無しさん
20/07/31 16:11:51.42 CGhJjJjO.net
ライブラリっつーのか?
Passportやexpress-sessionってどうやって見つけてきてるの?

436:デフォルトの名無しさん
20/08/04 02:57:28 vydsY05j.net
github express middleware やりたいことの英語
でググる

437:デフォルトの名無しさん
20/08/06 20:05:58.89 MUhDPlnI.net
cryptoで公開鍵ファイルつかって
暗号化したんですが
同じデータが毎回違う暗号になってしまいます。
原因を教えてください

438:デフォルトの名無しさん
20/08/07 00:05:01 TzYKRTqH.net
たぶん、時刻とか、何かランダムな要素を使っているのだろう

439:デフォルトの名無しさん
20/08/07 19:32:20.45 ysU+OJWY.net
今後は大規模システム以外は全てJavaScriptだけで書ける夢のような未来が来るね。

440:デフォルトの名無しさん
20/08/07 20:50:53.11 TH1C+bUh.net
なんという地獄

441:デフォルトの名無しさん
20/08/08 10:07:34.33 noFfmCPy.net
>>437
salt
iv

442:デフォルトの名無しさん
20/08/08 14:52:32 ciegX9N/.net
非同期処理って普通に
バグと脆弱性の温床になるよね?

443:デフォルトの名無しさん
20/08/08 17:42:04.42 /vlgEPfS.net
その理解のまま触っていたらそうだろうね

444:デフォルトの名無しさん
20/08/08 23:33:14 f7NhkLiO.net
node.js 面白いな。久しぶりにおもしろい言語だ。

445:デフォルトの名無しさん
20/08/08 23:34:04 f7NhkLiO.net
PythonとかRubyとかPHPって面白いとか言われてるけど、正直イマイチだよ。

俺はPerlのが好き。

446:デフォルトの名無しさん
20/08/08 23:46:39.64 bKK8FlY/.net
サーバサイドで非同期で
IOやりたい状況なんてそうそうないよ。
ロギングくらいか
とくにトランザクション処理で非同期に
動かれちゃうとほんと地獄

同期的な処理をする専用の
DBアクセス
ファイルIOアクセス
ネットワークアクセス
するライブラリを提供すべき
使用側でpromiseとかじゃなくて

447:デフォルトの名無しさん
20/08/08 23:55:39.53 OT1M6D83.net
今一番熱いライブラリ。
URLリンク(ja.uncyclopedia.info)

448:デフォルトの名無しさん
20/08/08 23:56:53.43 ZWuolq0D.net
>>444
言語じゃないけどな

449:デフォルトの名無しさん
20/08/08 23:58:34.55 OT1M6D83.net
ライブラリですね。

450:デフォルトの名無しさん
20/08/09 00:40:28 sb6ynJ/q.net
違います

451:デフォルトの名無しさん
20/08/09 00:51:05.32 2tff8pgk.net
データベースですね。

452:デフォルトの名無しさん
20/08/09 01:20:28 8UfVx4ij.net
違います

453:デフォルトの名無しさん
20/08/09 01:48:00.71 2tff8pgk.net
ゴミですね。

454:デフォルトの名無しさん
20/08/09 12:06:37 4gz4Sy4n.net
そ、違います

455:デフォルトの名無しさん
20/08/09 13:10:04.80 HdBz3xHm.net
nude.js ですね

456:デフォルトの名無しさん
20/08/09 16:47:11.71 sb6ynJ/q.net
URLリンク(www.moongift.jp)
nude.jsは画像をCanvasで読み込んでヌード画像か否かを判定するソフトウェアです。
裸が見たい!たくさんの画像の中からとにかく裸を見たい!と思う人はnude.jsを自動実行してみると幸せになれるかも知れません。
URLリンク(github.com)

457:デフォルトの名無しさん
20/08/11 00:54:04.11 jdRsH5YI.net
これまでの非同期対策手段の
やって欲しかったのはこういうことじゃないんだよ感
がやばい
本来求めてるのはコールバックの記述ないようにして
欲しいのと 余計な関数定義無しで処理を書きたいということ
なのに
Promiseやasync awaitがやってるのは
非同期処理をネストしなくて良くするだけで
肝心のコールバック記述や
余計な関数定義自体はなくならず、
それどころかこれらを使うと更にコードが複雑に
なって可読性が下がってしまう。
そういうゴチャゴチャした部分を無くして欲しいんだよ。

458:デフォルトの名無しさん
20/08/11 02:13:08.66 DrUL4lPZ.net
>>457
具体的に理想系を書いてくれるか?

459:デフォルトの名無しさん
20/08/11 06:51:02.02 KjgiWsfP.net
WScript.sleep(1000);

460:デフォルトの名無しさん
20/08/11 09:44:42 DyHWpKfR.net
>>458
ボンッキュッボンッ!

461:デフォルトの名無しさん
20/08/11 12:08:29 HwJhgroD.net
互換性ぶっ壊してでもコールバックなAPIをどうにかしてくれ
ってことならDenoじゃね

462:デフォルトの名無しさん
20/08/11 12:31:29.28 RcrtMjNU.net
>>457はコールバックだけじゃなくてPromiseも否定してね?
どういうものを期待してるのかわからんが、少なくともdenoじゃ解決にならんかと。

463:デフォルトの名無しさん
20/08/11 13:28:07.94 gDej+7HY.net
ならGoだろうな
コールバックも非同期処理もいらない
さようなら

464:デフォルトの名無しさん
20/08/11 13:50:34 OsUriXGV.net
どうせメッセージパッシングに文句垂れるな決まってる

465:デフォルトの名無しさん
20/08/11 13:51:16 OsUriXGV.net
s/垂れるな/垂れるに/

466:デフォルトの名無しさん
20/08/11 15:38:26.65 jdRsH5YI.net
>>458
ごめんちょっとコールバック入っちゃったけど
こんな感じがいい
「await」という単語は他に思い浮かばなかったから
真似しただけで別の単語でもなんでもいい
実際の「await」の処理とは無関係

await setTimeout( ()=>{}, 1000);
console.log('1秒経過しました');

コールバック引数が欲しい場合
ver data = await $.ajax({省略}).done();
console.log('レスポンスを受信しました');
console.log(data);

467:デフォルトの名無しさん
20/08/11 15:42:24.62 jdRsH5YI.net
↑varをverと書いてしまいました。

468:デフォルトの名無しさん
20/08/11 15:50:28.89 RcrtMjNU.net
結局Promise化すれば解決する話に見えるが
中途半端なコールバックの存在が謎。

469:デフォルトの名無しさん
20/08/11 16:25:16.36 E31y9T9f.net
Promiseとasync/awaitで解決済みだよなぁ
const sleep = ms => new Promise(resolve => setTimeout(resolve, ms))
って用意するなりimportするなりしておけば
await sleep(1000);
console.log('1秒経過しました');
これだけやんけ
$.ajaxとか書いちゃう知恵遅れさんだからしょうがないか

470:デフォルトの名無しさん
20/08/11 17:12:35.72 dI29r3/p.net
あんまりPromiseの事わかってなくて批判しちゃった感じかな。

471:デフォルトの名無しさん
20/08/11 17:34:48.50 DrUL4lPZ.net
>>467
スコープないのかよ
ゴミくそ

472:デフォルトの名無しさん
20/08/11 19:26:37.90 HwJhgroD.net
数行のコードじゃ意図が読み取り辛いけど
非同期関数を同期にしたいってコトなら絶対無理

473:デフォルトの名無しさん
20/08/11 19:33:26.30 GZz3NG8W.net
非同期関数を同期関数のように呼び出せるのがasync/awaitだけどな
動作の話じゃなくてソースの見た目の話だろどうせ
そんなこと気にするよりlet/const覚える方が先だぞ

474:デフォルトの名無しさん
20/08/12 07:56:55.71 XuneBSJh.net
promiseもasync/awaitも何も分かってないけど批判してたということだけは非常によく分かった

475:デフォルトの名無しさん
20/08/14 21:41:29 Fc7pCCli.net
どうでもいいけど
独自の概念や用語をバンバン押し付けてくる
フレームワークは
ゲロ以下の匂いがプンプンするぜぇーって思うわ
PHP系の糞フレームワークに多い

476:デフォルトの名無しさん
20/08/14 21:47:18.13 970Aew80.net
>>475
逆に、独自の概念や用語を押し付けてこないフレームワークって例えば何?

477:デフォルトの名無しさん
20/08/14 21:50:10.65 B7DyCr2o.net
アセンブラ

478:デフォルトの名無しさん
20/08/14 21:53:03.39 Fc7pCCli.net
>>476
やっぱexpressかな?
ララベルとかyiiとかは
ファサードとかDIコンテナとか
ゴミみたいな余計な用語出てきて腹立たしいわ

479:デフォルトの名無しさん
20/08/14 21:56:59 970Aew80.net
>>478
ファサードもDIコンテナも、フレームワーク独自の用語じゃなくてごくごく初歩的な一般用語では?

480:デフォルトの名無しさん
20/08/14 22:07:25 Fc7pCCli.net
>>479
そうだね。webとは関係ないよね
webとは関係ない設計上の概念を
Webフレームーワークが押し付けてくるのはおかしいよね
フレームワークはルーティングと
HTMLレンダだけやってりゃいい
DBにもビジネスロジックにも出しゃばってくるべきでは無い
とくにJavaをパクってるだけのPHPでそんな内容
吐き気がするに決まってるだろ

481:デフォルトの名無しさん
20/08/14 22:24:17.70 B01JOFDh.net
DIは、最初はめんどくさい仕組みだなって思うけど、
ある日突然納得感に包まれるぞ。

482:デフォルトの名無しさん
20/08/18 21:29:27.81 ZCkQ8Dn9.net
MySQLとかのDBアクセス
同期的にやってくれるライブラリないんか?
fsはSync版あるやん

483:デフォルトの名無しさん
20/08/18 21:50:58.81 uzsO+4Q7.net
async/await使えばいいやろ
fsのsyncなんてお遊びかツールでしか使えんし

484:デフォルトの名無しさん
20/08/18 21:58:10.75 wak8Bz4V.net
もうjavascriptだけで出来ないことはない!
javascript最強!
javascript最高!
今、javascriptの伝説が始まる!!!!!!

485:デフォルトの名無しさん
20/08/19 04:18:53 vidjSvBe.net
キッショ

486:デフォルトの名無しさん
20/08/20 19:53:59.17 KMfIHaw0.net
真偽値が非同期になるとヤバイ
trueかfalseのどちらかかと
思っていた変数が
pendingになっててif文の分岐に
ミスがあったとかマジで勘弁
セキュリティやトランザクション処理が
クリティカルな部分でこんなことやられたら叶わん

487:デフォルトの名無しさん
20/08/20 20:05:16 t5R+TL7j.net
ごめんよく分からないので
コードで頼む

488:デフォルトの名無しさん
20/08/20 20:09:16 AoU9HO21.net
低脳はプログラマやめとけ

489:デフォルトの名無しさん
20/08/20 20:16:29.65 X1nNk3cj.net
>>486
それマルチスレッドの話じゃね?「非同期」つってもjavascriptのそれとは意味が違う。

490:デフォルトの名無しさん
20/08/20 20:32:39 tyNv301J.net
pendingは普通にPromiseの話やろ

Promiseを理解せず非同期のコード書くのが悪い

491:デフォルトの名無しさん
20/08/20 20:41:23.02 qjxJt4Hn.net
>>489
node.jsのスレだからJavaScriptの話なんだが
nodeってシングルスレで合ってる?
あと素人で申し訳ないが
if文がある時もそれ以降のコードに勝手に進んじゃうの?
たとえば
if(非同期の真偽値メソッド() ){
return;
}
console.log('ifに該当したら逐次処理ならここには到達しないはず');
逐次処理ならelseなしで処理を抜けることが出来るが、
非同期処理だと条件分岐も待ってくれないの?
こういうのがかなり怖い

492:デフォルトの名無しさん
20/08/20 20:44:17.20 qjxJt4Hn.net
>>490
非同期のコードが書くの悪いって僕も書きたくないです。
でもデフォルトで非同期の関数ばかりですよね?
ちょっとでも油断すると非同期になっちゃうんです
もちろんasyncやawaitつけてるけど
ついつけ忘れるといつの間にか非同期になってるんです。

493:デフォルトの名無しさん
20/08/20 20:49:28.75 AoU9HO21.net
await付け忘れるヤツが悪い
TypeScriptで型チェックしとけ

494:デフォルトの名無しさん
20/08/20 21:17:24 t5R+TL7j.net
>>491
if(await hoge())するだけ
何も難しいことない

495:デフォルトの名無しさん
20/08/20 22:05:57.37 wmqy4S/J.net
まぁそこは同期が基本から非同期が基本に頭切り替えないとね

496:デフォルトの名無しさん
20/08/20 22:43:19.84 tyNv301J.net
>>491
nodeに限らずJSは基本シングルスレッド
JSで本格的にコード書くなら
シングルスレッドでどうやって非同期や並行処理を実現してるのかを
最低限の知識として知っておく必要がある
setTimeout(fn, 0)で渡したfnがどのタイミングで実行されるのかと同じ
少し詳しめのチュートリアルならだいだい解説してある

497:デフォルトの名無しさん
20/08/21 00:43:07.71 CMx879FZ.net
とは言え今ではスレッドも使えるから上手く利用したいところ。
シングルスレッドにこだわってコールバックの中で時間のかかる処理しちゃったら本末転倒。

498:デフォルトの名無しさん
20/08/21 01:18:26.76 RmDQK783.net
プロセスも使えるぞ。
せっかくだからV8 isolateも使いたいけどどうやるんだっけ…

499:デフォルトの名無しさん
20/08/21 01:47:45.18 fPne1yUC.net
workerが別スレッドのisolate

500:デフォルトの名無しさん
20/09/01 20:38:22.47 QR4OvP6I.net
nodeはバッチ処理にはマジで向いてないよな
ループ中に非同期発生すると
ループ番号の順序性があべこべになるとか
ヤバすぎる
ループ外グローバル変数への
数値溜め込み処理とかどうなるんだこれ
あと完了したと思ってた処理が
完了表示されただけで
実はまだ非同期で動作してたとかありそうで
怖すぎる

501:デフォルトの名無しさん
20/09/01 20:42:12.06 I2eVqLbl.net
無能w

502:デフォルトの名無しさん
20/09/01 20:43:25.87 tH3NhyKR.net
>>500
アホ過ぎるwww

503:デフォルトの名無しさん
20/09/01 20:58:34.78 z4ASdXsC.net
>ループ中に非同期発生すると
まるで自然現象とか天災みたいな言い方

504:デフォルトの名無しさん
20/09/01 21:12:04.15 QR4OvP6I.net
すまん、俺は無能なんだわ
バッチ処理は終わるまで時間がかかるから
プログレスバーとして
進捗報告として
データベースの進捗状況テーブルへ
進行度をアップデートしてんだわ
毎ループ進捗報告しなくていいから
%で余り算して定期的に
進捗をアップデートしてんだわ
ところがその進捗報告DBアクセスで
非同期が発生してループの順序が乱れる
進捗状況の進行度が進んだり戻ったり
トリッキーに変動するんだわ
でもループの最後まで到達して完了すると
全てのデータ整合してんだわw
なぜ中間状態だけこんなにトリッキーなのか謎

505:デフォルトの名無しさん
20/09/01 21:24:55.53 I2eVqLbl.net
コード書くのやめろ

506:デフォルトの名無しさん
20/09/01 21:59:23 usFRsaVF.net
進捗の書き込みはシリアルにやればいいよね?
「80%完了」の後に「70%完了」が来ても無視すればいい

507:デフォルトの名無しさん
20/09/01 22:02:04.20 QR4OvP6I.net
>>506
無視するようにしてるんだよ
whereで大小比較して
更新する数の方が小さかったら更新されないように
してる
でもDB上の数値が減るんだよ。何故だ?

508:デフォルトの名無しさん
20/09/01 22:05:22.51 3AXmEbq5.net
コードも無しで言われても知らんわ

509:デフォルトの名無しさん
20/09/01 22:28:22.77 usFRsaVF.net
>>507
シリアルに書いてないからでしょ
今実行中の進捗報告の書き込みが完了してから
次の進捗報告の書き込みをする
理解できないほうが謎

510:デフォルトの名無しさん
20/09/02 02:59:56.27 bHRnrATQ.net
7月入ってからageながら変なこと書いてんの同じ人っぽいな
挫けないでがんばれよ

511:デフォルトの名無しさん
20/09/02 12:32:41.24 U40YU3HI.net
並列処理しなければ良い
1つが、確実に終わってから、
次のものを処理する

512:デフォルトの名無しさん
20/09/02 13:19:02.32 FrAP3fk+.net
回答者まで同じ内容を繰り返し始めたw

513:デフォルトの名無しさん
20/09/02 21:31:48.71 C0O9Iab7.net
>>504
こうなる原因が今日特定出来た
ループ自体が多重に並列に動作してた
1つのfor文が動いてるんだと思ってたら
ログをよくよく見たらfor文自体が
3つくらい並列で動いてた
勝手に多重実行になった原因は、
MySQLが処理しきれなくなってタイムアウトが
発生したあと
nodeが自動で(promiseの仕様?)最初から
リクエストの処理をリトライするようで
ピタゴラスイッチのアルゴリズム体操見たいに
なってたわw
初歩的な質問ですが
サーバに飛んできたリクエストだけを中断するには
exitが正解ですか?
returnが正解ですか?
res.end(); ですか?
サーバ自体は止めたくありませんが
ある関数自体を中断するだけでなく
そのリクエストだけ大元から全部中断したいです

514:デフォルトの名無しさん
20/09/02 22:07:44.16 m9UvO5Rn.net
お前がコード書くのをやめる、が正解

515:デフォルトの名無しさん
20/09/07 13:52:39.16 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:デフォルトの名無しさん
20/09/07 14:38:17 UUesL9I9.net
説明できますかって何だよ挑発してんのかよ
resolve()は必ずイベントループに戻ってからthen()のコールバックが呼ばれるからに決まってるだろがボケカス
マイクロタスクキューでも調べやがれポンコツ

517:デフォルトの名無しさん
20/09/07 15:25:12.91 Egt+Qwmp.net
0
4
1
6
2
3
5
とか
0
4
6
1
2
3
5
にならない?

518:デフォルトの名無しさん
20/09/07 15:45:30.49 UUesL9I9.net
ならない
Promiseコンストラクタはコールバックを即時実行する
MDN
executor 関数は Promise 実装により resolve 関数と reject 関数が渡されて即座に実行されます (Promise コンストラクターが作成したオブジェクトを返すよりも前に executor は呼び出されます)。

519:デフォルトの名無しさん
20/09/07 17:09:51 3uGG3SyO.net
>>515
コールスタックが空にならないと、各種キューに入ってる処理は実行されない

最初にconsole.log(“6”);まで処理したらスタックが空になる
その状態でsetTimeoutのタイマーが発動してキューにコールバック関数が入る
スタックが空なのでキューの1番目にあるsetTimeoutのコールバック関数がスタックに積まれて呼び出される
この関数がreturnするまではスタックは空にならないので
それまではキューに入った処理を実行するタイミングはない

console.log(“3”);まで実行してreturnしたらスタックが空になるので
その後、各種キューに入ってる処理があれば実行される

520:デフォルトの名無しさん
20/09/07 17:21:12.28 KQEAaFWf.net
試してみたんですが、setTimeout()で指定している関数の中で、
resolve(111);
resolve(222);
resolve(333);
としてから、
sample.then( function(value) {
  console.log( "5, value=", value );
});
とすると、
5, value = 111
とだけ表示されて、222, 333 の分は表示されないんですが、どういった
理由なのでしょう。

521:デフォルトの名無しさん
20/09/07 17:33:56.06 Egt+Qwmp.net
お前はもう死んでいる

522:デフォルトの名無しさん
20/09/07 17:39:40.90 UUesL9I9.net
最初にresolve()した時点でそのPromiseの値は確定するから
つかスレに書き込む暇があるならドキュメントでも何でもいいから学習してPromiseがどういうもんか理解してから試せよ
Promiseってのは「将来確定する"値"」を表現するもんなんだよ

523:デフォルトの名無しさん
20/09/07 17:52:24.52 neZOTIA1.net
一旦解決したPromiseを再度変更出来たらそれは改竄と呼ぶべきだな
reject(111);
resolve(222);
reject(333);
これは成功したのか失敗したのかどっちよ?

524:デフォルトの名無しさん
20/09/07 18:07:19.89 ieMFgaPK.net
これ近頃よく見る相手にしちゃダメなやつだな

525:デフォルトの名無しさん
20/09/07 18:08:35.44 UUesL9I9.net
最初のreject()で失敗が確定する
Promiseの状態はpending→settledと変わる
settledにはfulfilledとfailedがある
resolve()でfulfilled、reject()でfailedになる

526:デフォルトの名無しさん
20/09/08 00:01:18.48 8muSUg7S.net
nodeの非同期を同期的にやりたい時のコードって
promise async await
resolve thenが複雑に入り組んで
意図した動きになった時はめっちゃ過剰なコードになるよね
精神的にヘトヘトに疲れて 清書する元気も起きん
promiseやresolve変数がたくさん生成しまくって
名前つけるのもめんどうになって
p1とかr3みたいなのが沢山できてる
特にforループの中に非同期使うときは地獄
早くmysqlを同期的にクエリ投げられる
ライブラリ出してください。何でもしますから。

527:デフォルトの名無しさん
20/09/08 01:45:13 1Wq/gxeB.net
だからお前はプログラマやめろって
才能なさすぎ

528:デフォルトの名無しさん
20/09/08 02:32:28 o0Kum352.net
>>526
nodeも非同期も関係なくお前がめっちゃ過剰なコード書いてるだけだからな

529:デフォルトの名無しさん
20/09/08 12:00:40.54 gglleEZ2.net
ライブラリは需要があればとっくに作られてる
今現在無いのはつまりそういうことだ

530:デフォルトの名無しさん
20/09/08 12:14:59.78 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:デフォルトの名無しさん
20/09/08 13:42:27.36 8muSUg7S.net
select文を投げるのは
selectの結果が欲しいから投げる訳であって
結果が取得できる前に
後続のコードに勝手に動かれたら困るのは
当たり前だよなあ?
DBアクセスで非同期って何がメリットが
あるのか分からない。
それにnodeの概念はバカの新人に言葉で説明しにくいんだよ
あいつぜってー非同期とか理解出来ねえぞ

532:デフォルトの名無しさん
20/09/08 13:47:44.03 op+kwVtr.net
新人に言葉で説明できないバカ
新人かわいそう

533:デフォルトの名無しさん
20/09/08 13:57:56.32 c4WmASUK.net
> 勝手に動かれたら
何も理解してないことがよく分かるw

534:デフォルトの名無しさん
20/09/08 14:51:08.13 QV2EnsJl.net
お前の場合はMySQL一つしか使わないのが当たり前かもしれないが世の中にはシャードされた複数のMySQLにアクセスしたりキャッシュのRedisにアクセスしたり検索エンジンのelasticsearchにアクセスしたりいろんなことをしなきゃいけないアプリがあったりするわけ
Nodeではこれらは非同期だから特別なことをしなくてもたやすく並行アクセスできる
同期で並行アクセスしようとすると複数スレッド使って待ち合わせすることになるから非同期より簡単にできるわけではない

535:デフォルトの名無しさん
20/09/08 16:00:24.51 8muSUg7S.net
>>534
ああ、アクセスするのは簡単やと思うわ
問題はその結果の始末を付けるのが大変だと思うわ
なんかいい書籍あるか?

536:デフォルトの名無しさん
20/09/08 17:40:30 Qj0BclxS.net
本当に本当にダメなヤツだなぁ(呆れ)
アクセスってのは接続して要求を投げて結果を受け取ってそれを処理して接続を閉じるまでの一連に決まってるだろ
>>530の例だって後始末まで書いてあるのに全然大変じゃないだろが

537:デフォルトの名無しさん
20/09/08 19:19:05.95 gglleEZ2.net
とりあえずオライリーでも読んだらいいんじゃない
URLリンク(www.amazon.jp)

538:デフォルトの名無しさん
20/09/09 06:42:52 N3PFvdWI.net
スレ的には真っ当な質問なのに当たり強過ぎでしょ

539:デフォルトの名無しさん
20/09/09 08:44:06.86 7Dxn++Hv.net
質問じゃなくて文句

540:デフォルトの名無しさん
20/09/09 17:07:03 SFlZHAWP.net
謙虚に質問してればレスも優しかったかもよ

541:デフォルトの名無しさん
20/09/09 21:03:51 OFM+73CL.net
分からないだけならともかく延々と自分以外を貶めつつ無能を晒してたからなぁ

542:デフォルトの名無しさん
20/09/09 21:12:34.50 XGuez22g.net
それな
× node.js が悪い
× 非同期が悪い
× promise が悪い
× async/awaitが悪い
× 新人がバカ
○ ID:8muSUg7S がバカ
こうだからな

543:デフォルトの名無しさん
20/09/10 14:55:06.91 rLZBXCmM.net
グレたωωω

544:デフォルトの名無しさん
20/09/10 19:56:10 FWP0gZB+.net
clusterでマルチプロセスしようとしたんだけど
「EADDRINUSE(ポートが既に使われている)」
エラーがどうしても出てしまいます。
もちろん既に稼働しているnodeはなく、
fork元のapp.jsでlistenしているのと同じポート
子プロセスでまたbindしようとして失敗しているようで
子プロセスは外部からリクエストを受けるような
ものではなく、重い処理をコア分散させて並列処理したいだけです
子プロセスにポート割り当てが必要な理由がよく分かりませんが
恐らく親プロセスと子プロセス間の通信
とかに使うんでしょうか?
子プロセスのポート割り当て回避か、
親プロセスと別ポートを割り当てる方法はありますか?

545:デフォルトの名無しさん
20/09/10 20:18:09 VafdMbGz.net
> 子プロセスは外部からリクエストを受けるようなものではなく

それならclusterモジュールは必要なくね
clustetは複数のプロセスを使って大量のリクエストを捌くためのもの
ただの子プロセスならchild_processのメソッドを使う

546:デフォルトの名無しさん
20/09/10 20:21:53 C+K2oJgr.net
>>545
なるほど、助かりました
じつはworker_threadsも試してみて同じ
エラー出たので
child_processが正解でしたか
これだとポートは関係ない?

547:デフォルトの名無しさん
20/09/10 20:43:38.94 oBZEl9rg.net
clusterだと親は子を産むだけの役割じゃなかったっけ

548:デフォルトの名無しさん
20/09/10 20:45:06.67 oBZEl9rg.net
あとworker_threadsで同じエラーが出るのはいくらなんでもおかしい

549:デフォルトの名無しさん
20/09/14 20:42:48.98 JdQogpR1.net
>>544 の者ですが
今日これをデバッグしてました。
clusterでもwoker_threadsfでも
child_processでも
「EADDRINUSE」が発生しました
発生するタイミングは子プロセスを生成した時でも
なく
子プロセスでMySQLに対しのコネクション確立時でもなく
確立したDBコネクションからクエリを投げるコード
を実行する時に発生しますが
なぜこのタイミングなのか分かりません
ここで気になったのが
nodeでフロントユーザーに対し
80番ポートをlistenしていて
nodeがローカルのMySQLにアクセスする時
nodeのクライアントポートはフロントと
おなじ80を使うのでしょうか?
それとも別のランダムポートを取得してきて使うのでしょうか?

550:デフォルトの名無しさん
20/09/14 20:55:49.60 AayaioGL.net
説明と全然違う事象じゃねーの
せめてエラーメッセージとスタックトレース貼れ

551:デフォルトの名無しさん
20/09/14 20:55:58.86 JdQogpR1.net
続きですか
もう少し調べてみると
「EADDRINUSE」が発生するタイミングは
MySQLに対しコネクション確立後
SQLを投げる時で間違いないと思いますが、
エラーのスタックとレースを見ても
何かのハンドラから駆動されており自分の書いたコードでは
ありません。
nodeかexpressかmysqlモジュールのハンドラ
だと思います
子プロセスはローカルのMySQLに対して
接続して読み書きするだけで
フロントとのやり取りは一切ありませんが
生成元の親プロセスはExpressのapp.js
で立ち上げてるwebアプリです

552:デフォルトの名無しさん
20/09/14 20:56:11.94 JdQogpR1.net
不思議なのが子プロセスで
mysqlとコネクション確立までは失敗せずに
動作し、SQLを投げる段階で
なぜか大元の「app.js」をもう1つ起動しようとしており
app.jsはもう既に起動してるので、
listenポート重複により上記のエラーが発生するわけです
暫定対応で動くようにはなりましたが、
なぜローカルのDBアクセス時にapp.js実行する
動きをするのかの原因がまだ分かっていません
webとは関係ないはずの子プロセスのファイルを
単体でコマンドで実行した場合も
Expressのベースディレクトリにある
「app.js」が実行されていることが分かりました。
自身のコードではこのようなことをしてないので
フレームワークかモジュールの内部処理だと思いますが、
知っている方がいましたら教えてください。

553:デフォルトの名無しさん
20/09/14 20:57:39.11 JdQogpR1.net
>>550
すみません、もう帰宅してしまったのと
機密事項で怒られるのでスタックトレースは貼れません

554:デフォルトの名無しさん
20/09/14 21:14:49.11 AayaioGL.net
> 単体でコマンドで実行した場合も
> Expressのベースディレクトリにある
> 「app.js」が実行されていることが分かりました。
clusterも何も関係ねーじゃんwww
断言するがフレームワークもモジュールもmysqlも関係なくてお前のバグだから真面目に仕事しろ
子プロセスから再現に関係ない部分を削除しまくって最小限のここで見せられるコードになるまで書き込まなくていいよ

555:デフォルトの名無しさん
20/09/21 23:41:10.99 h9hvsVjr9
この時代に生きててSNS発信を頑張らないやつはアホだ。
URLリンク(www.youtube.com)
【事例付き】YouTuberは最強の副業である件について。
URLリンク(www.youtube.com)
【初心者向け】YouTubeの始め方・稼ぎ方を徹底解説!
URLリンク(www.youtube.com)
【貧者の工夫で戦え】ガラケーだっていい。YouTube始めるのにパソコンはいらない!
URLリンク(www.youtube.com)
YouTubeを伸ばすコツ【5つの本質論/初心者向けのセミナーです】
URLリンク(www.youtube.com)
【悲報】YouTuberはマジで難しいので、ほぼ挫折すると思う【無理ゲー】
URLリンク(www.youtube.com)

556:デフォルトの名無しさん
20/10/03 14:17:11.74 l4QjehZB.net
URLリンク(detail.chiebukuro.yahoo.co.jp)
abiko tetuってやつヤバすぎ

557:デフォルトの名無しさん
20/10/17 18:10:22.96 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:デフォルトの名無しさん
20/10/17 18:39:14.64 cX3MrjsP.net
>>557
結論的には、
$ npm install -g fs-extra
$ set NODE_PATH=%AppData%\npm\node_modules
としてから、
node xxxx.js
とすると直りました。

559:デフォルトの名無しさん
20/10/17 23:48:03.55 5XNVi7jP.net
Windows?

560:デフォルトの名無しさん
20/10/19 16:19:09.43 faSV5MEm.net
# Fatal error in , line 0
とか見慣れぬエラーで落ちててビビって調べたらv14のバグか

561:デフォルトの名無しさん
20/10/25 03:29:13.70 xG/xcmJA.net
import って mjsにしないといけないし

562:デフォルトの名無しさん
20/10/25 03:30:20.11 xG/xcmJA.net
途中送信すまん

563:デフォルトの名無しさん
20/10/25 04:23:13.46 Xs0QdE0/.net
mjsにしないといけないから何なんだよ気になるだろ…
因みにpackage.json弄れば.jsをESM扱いにはできる

564:デフォルトの名無しさん
20/10/25 13:32:05.91 xG/xcmJA.net
node v15にしたからmjsにして requireを全部importに変更したらpuppeteerがimportできなくてまたrequireに戻した

565:デフォルトの名無しさん
20/10/26 06:48:46.11 AP4vuhmG.net
下記のモジュールを使用してHTMLソースからタグを全て取り除く処理を作っているのですが、タグを取り除いてくれません。
ES6で記述されたjavascriptを対応していないブラウザで動作させるために記法を変換してから読み込ませることは知っているのですが、
nodeコマンドで直接実行する場合にもそのような記法の変換などが必要なのでしょうか?
◆モジュール
URLリンク(github.com)
◆ソース
main.js
-----
var striptags = require('striptags');
striptags(html);
console.log(html); // 取り除かれていない
◆コンソールで書きコマンドを実行
node main.js

566:デフォルトの名無しさん
20/10/26 13:39:27.76 jWz3MMEX.net
html = striptags(html);
じゃないの?

567:デフォルトの名無しさん
20/10/26 14:12:32.65 AP4vuhmG.net
>>566
教えて頂いた方法で取り除かれていることが確認できました。
公開されているソースを確認したら戻り値を受け取るようになっていました。
今後はソースも確認するようにします。
ありがとうございました。

568:デフォルトの名無しさん
20/10/26 14:44:15.69 /aZJ5myY.net
その前にJavaScriptの勉強をちゃんとすべきでは。。。
JSの文字列は不変って知ってればstriptagsの使い方を知らなくても>>565の書き方じゃダメってわかったはず

569:デフォルトの名無しさん
20/10/28 03:46:46.75 Xggm0kAQ.net
Fetchより先にAbortControllerが来るのタイムパラドックス感がある

570:デフォルトの名無しさん
20/10/28 14:31:46.46 jeoOjGPI.net
node.jsがあればPHPはもういらないよね?

571:デフォルトの名無しさん
20/10/28 14:45:56.45 Nt7id6vD.net
そんなことはない

572:デフォルトの名無しさん
20/10/28 23:57:51.70 jeoOjGPI.net
>>571
なぜ?

573:デフォルトの名無しさん
20/10/29 00:23:44.55 6kIeo5xU.net
rdb扱うのはphpの方が得意やろ

574:デフォルトの名無しさん
20/10/29 00:35:34.69 Phiv6uZl.net
>>564
v15で試したけど import puppeteer from 'puppeteer' で読み込めてるよ

575:デフォルトの名無しさん
20/10/29 10:07:34.55 D91L/a15.net
俺も文法的にはPHPよりもjavascriptの方が好みなので、できれば移行したいんだけど、
URL単位で小物サービスを作る用途がメインなので今でもPHPを使ってしまう。
なんか、node.jsはCGI的に使うのはナンセンスという雰囲気があって、
でも、たまにしか使わない小物サービス毎にポート番号を消費したくない、
と思うと移行できない。
こんな俺にもおすすめなnode.jsの使い方ってある?

576:デフォルトの名無しさん
20/10/29 10:28:14.20 89EHBpBz.net
レンタルサーバーだといまだにPHPだかんね

577:デフォルトの名無しさん
20/10/29 11:43:25.35 6uKcySyb.net
>>574
ありがとうございます。 -gでインストールしてたのがいけないっぽいです

578:デフォルトの名無しさん
20/10/29 16:31:46.11 Phiv6uZl.net
>>575
極々普通にNodeでもルーターから振り分ければいいと思う
PHPだってサービスごとにhttpd立てているわけではないっしょ

579:デフォルトの名無しさん
20/10/29 21:26:42.11 /i1l21sm.net
>>575
無料オンライン格ゲーを作る。

580:デフォルトの名無しさん
20/10/29 23:24:45.00 D91L/a15.net
>>578
ありがとう、それだ!俺に必要だったものは。
とりあえず、expressを入れればいいのかな?
ちょっとやってみる。
>>579
俺にはレベル高すぎ(笑)

581:デフォルトの名無しさん
20/11/04 19:01:36.37 M+x6liG8u
【アフィリエイト】ブログで「月100万円稼ぐ方法」を初心者向けにプロブロガーが解説
URLリンク(www.youtube.com)
【実例有り】ブログで月1万円稼ぐまでの具体的な道筋を教える【プロが解説】
URLリンク(www.youtube.com)
【案件も公開】ブログで月20万円稼ぐ方法の全て。具体的な道筋や戦略も全て公開【雑記でもいけた】
URLリンク(www.youtube.com)
ブログ収益が大きく伸びた、たった1つのきっかけを話す【ネタバレ:人と会う】
URLリンク(www.youtube.com)
ブログで稼ぐ仕組み徹底解説】初心者にもやさしく、丁寧に説明
URLリンク(www.youtube.com)
【ミスるとヤバい】特化ブログと雑記ブログ、どっちがいいの?おすすめの運営方法も解説!
URLリンク(www.youtube.com)
【危険】ブログで稼げずに「挫折」してしまう人の特徴【初心者は特に注意】
URLリンク(www.youtube.com)

582:デフォルトの名無しさん
20/11/07 11:58:54.69 fULQIOig.net
npm-run-all で複数のnpm scriptを連続で実行したいんだが、scriptのどれか一つでも
0以外のステータスを返すとそこで処理をやめてしまうのをどうにかできないのかな。
大抵の場合はその仕様でもいいんだけど、たまに、エラーだろうがなんだろうがとにかく
処理しきってしまいたい場合がある。

583:デフォルトの名無しさん
20/11/07 12:35:45.81 1KfyiAX9.net
>>582
--continue-on-error
options.continueOnError = true;

584:デフォルトの名無しさん
20/11/07 12:39:43.17 fULQIOig.net
さんきう。オプション見落としてた。

585:デフォルトの名無しさん
20/11/14 16:32:10.90 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:デフォルトの名無しさん
20/11/18 14:56:07.27 7Ekft4aV.net
おめーら的にdenoってどうすか?
使ったことなさそうだけど

587:デフォルトの名無しさん
20/11/18 19:28:04.93 Zh0DQZnV.net
ほんのちょっとしか触ってないけど面倒くささが無い
npmライブラリが使えないけど init だの install だの package.json だの tsc だのやったりいじったりしないで済むから手軽に感じた
時間が経ってライブラリが充実してくれれば普通に使いやすい環境だと思う

588:デフォルトの名無しさん
20/11/18 20:11:49.14 7Ekft4aV.net
期待したいよな
開発者はイケメンだし

589:デフォルトの名無しさん
20/11/18 21:25:12.52 v8HWKopj.net
npmが使えないからエコシステムが育つまで様子見だな。
@types以前のTypeScriptみたいな。

590:デフォルトの名無しさん
20/11/19 01:51:43.98 /aqa7r+0.net
io.jsのように良い部分はNode.js側に取り込んでほしいね
最近は複雑さばかりが増しているし

591:デフォルトの名無しさん
20/11/21 19:45:56.38 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

592:デフォルトの名無しさん
20/11/21 23:08:26.52 jQLdetle.net
Ruby のBundler なら、プロジェクトルートに移動してから、
Gemfile にバージョン指定を書いて、
bundle install とコマンド入力するけど

593:デフォルトの名無しさん
20/11/21 23:54:59.89 lsz7D7Ic.net
>>591
npm i express@next
>>592
npm知らないヤツが何ででしゃばるわけ?

594:デフォルトの名無しさん
20/11/22 00:38:30.85 gYBzGuNC.net
expressは当時koaに移行するのかと思ってたけど結局どっちも開発続いてるのな


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

281日前に更新/211 KB
担当:undef