pythonやrubyやPHPと同じ土俵でjavascriptが使えるようになりました。
サーバサイドjavascriptについて語りましょう。
node.js - googleが開発したV8エンジン上で実行できる処理系
http://nodejs.org/
ayo.js - node.js 互換で Rod の影響からの脱却を目指す処理系
https://github.com/ayojs/ayo
Nashorn - Java8 からRhinoに代わって同梱されているJavaScriptエンジン
http://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と比較してもかなり速い
http://shootout.alioth.debian.org/u32/benchmark.php?test=all&lang=v8&lang2=yarv
基礎から学ぶNode.js
http://gihyo.jp/dev/serial/01/nodejs
node.jsの概要とアプリケーション開発の準備
http://gihyo.jp/dev/serial/01/realtimeweb/0002
前スレ
【node.js】サーバサイドjavascript 4【io.js】
http://mevius.5ch.net/test/read.cgi/tech/1460359714/
【node.js】サーバサイドjavascript 3【io.js】
http://echo.2ch.net/test/read.cgi/tech/1419673207/
【node.js】サーバサイドjavascript 2【Rhino】
http://peace.2ch.net/test/read.cgi/tech/1358937029/
【node.js】サーバサイドjavascript【Rhino】
http://toro.2ch.net/test/read.cgi/tech/1310087535/
探検
【node.js】サーバサイドjavascript 5【Nashorn】
1デフォルトの名無しさん
2018/02/13(火) 22:21:33.91ID:moEhrPrC516デフォルトの名無しさん
2020/09/07(月) 14:38:17.12ID:UUesL9I9 説明できますかって何だよ挑発してんのかよ
resolve()は必ずイベントループに戻ってからthen()のコールバックが呼ばれるからに決まってるだろがボケカス
マイクロタスクキューでも調べやがれポンコツ
resolve()は必ずイベントループに戻ってからthen()のコールバックが呼ばれるからに決まってるだろがボケカス
マイクロタスクキューでも調べやがれポンコツ
517デフォルトの名無しさん
2020/09/07(月) 15:25:12.91ID:Egt+Qwmp 0
4
1
6
2
3
5
とか
0
4
6
1
2
3
5
にならない?
4
1
6
2
3
5
とか
0
4
6
1
2
3
5
にならない?
518デフォルトの名無しさん
2020/09/07(月) 15:45:30.49ID:UUesL9I9 ならない
Promiseコンストラクタはコールバックを即時実行する
MDN
executor 関数は Promise 実装により resolve 関数と reject 関数が渡されて即座に実行されます (Promise コンストラクターが作成したオブジェクトを返すよりも前に executor は呼び出されます)。
Promiseコンストラクタはコールバックを即時実行する
MDN
executor 関数は Promise 実装により resolve 関数と reject 関数が渡されて即座に実行されます (Promise コンストラクターが作成したオブジェクトを返すよりも前に executor は呼び出されます)。
519デフォルトの名無しさん
2020/09/07(月) 17:09:51.23ID:3uGG3SyO >>515
コールスタックが空にならないと、各種キューに入ってる処理は実行されない
最初にconsole.log(“6”);まで処理したらスタックが空になる
その状態でsetTimeoutのタイマーが発動してキューにコールバック関数が入る
スタックが空なのでキューの1番目にあるsetTimeoutのコールバック関数がスタックに積まれて呼び出される
この関数がreturnするまではスタックは空にならないので
それまではキューに入った処理を実行するタイミングはない
console.log(“3”);まで実行してreturnしたらスタックが空になるので
その後、各種キューに入ってる処理があれば実行される
コールスタックが空にならないと、各種キューに入ってる処理は実行されない
最初にconsole.log(“6”);まで処理したらスタックが空になる
その状態でsetTimeoutのタイマーが発動してキューにコールバック関数が入る
スタックが空なのでキューの1番目にあるsetTimeoutのコールバック関数がスタックに積まれて呼び出される
この関数がreturnするまではスタックは空にならないので
それまではキューに入った処理を実行するタイミングはない
console.log(“3”);まで実行してreturnしたらスタックが空になるので
その後、各種キューに入ってる処理があれば実行される
520デフォルトの名無しさん
2020/09/07(月) 17:21:12.28ID:KQEAaFWf 試してみたんですが、setTimeout()で指定している関数の中で、
resolve(111);
resolve(222);
resolve(333);
としてから、
sample.then( function(value) {
console.log( "5, value=", value );
});
とすると、
5, value = 111
とだけ表示されて、222, 333 の分は表示されないんですが、どういった
理由なのでしょう。
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.06ID:Egt+Qwmp お前はもう死んでいる
522デフォルトの名無しさん
2020/09/07(月) 17:39:40.90ID:UUesL9I9 最初にresolve()した時点でそのPromiseの値は確定するから
つかスレに書き込む暇があるならドキュメントでも何でもいいから学習してPromiseがどういうもんか理解してから試せよ
Promiseってのは「将来確定する"値"」を表現するもんなんだよ
つかスレに書き込む暇があるならドキュメントでも何でもいいから学習してPromiseがどういうもんか理解してから試せよ
Promiseってのは「将来確定する"値"」を表現するもんなんだよ
523デフォルトの名無しさん
2020/09/07(月) 17:52:24.52ID:neZOTIA1 一旦解決したPromiseを再度変更出来たらそれは改竄と呼ぶべきだな
reject(111);
resolve(222);
reject(333);
これは成功したのか失敗したのかどっちよ?
reject(111);
resolve(222);
reject(333);
これは成功したのか失敗したのかどっちよ?
524デフォルトの名無しさん
2020/09/07(月) 18:07:19.89ID:ieMFgaPK これ近頃よく見る相手にしちゃダメなやつだな
525デフォルトの名無しさん
2020/09/07(月) 18:08:35.44ID:UUesL9I9 最初のreject()で失敗が確定する
Promiseの状態はpending→settledと変わる
settledにはfulfilledとfailedがある
resolve()でfulfilled、reject()でfailedになる
Promiseの状態はpending→settledと変わる
settledにはfulfilledとfailedがある
resolve()でfulfilled、reject()でfailedになる
526デフォルトの名無しさん
2020/09/08(火) 00:01:18.48ID:8muSUg7S nodeの非同期を同期的にやりたい時のコードって
promise async await
resolve thenが複雑に入り組んで
意図した動きになった時はめっちゃ過剰なコードになるよね
精神的にヘトヘトに疲れて 清書する元気も起きん
promiseやresolve変数がたくさん生成しまくって
名前つけるのもめんどうになって
p1とかr3みたいなのが沢山できてる
特にforループの中に非同期使うときは地獄
早くmysqlを同期的にクエリ投げられる
ライブラリ出してください。何でもしますから。
promise async await
resolve thenが複雑に入り組んで
意図した動きになった時はめっちゃ過剰なコードになるよね
精神的にヘトヘトに疲れて 清書する元気も起きん
promiseやresolve変数がたくさん生成しまくって
名前つけるのもめんどうになって
p1とかr3みたいなのが沢山できてる
特にforループの中に非同期使うときは地獄
早くmysqlを同期的にクエリ投げられる
ライブラリ出してください。何でもしますから。
527デフォルトの名無しさん
2020/09/08(火) 01:45:13.23ID:1Wq/gxeB だからお前はプログラマやめろって
才能なさすぎ
才能なさすぎ
528デフォルトの名無しさん
2020/09/08(火) 02:32:28.50ID:o0Kum352 >>526
nodeも非同期も関係なくお前がめっちゃ過剰なコード書いてるだけだからな
nodeも非同期も関係なくお前がめっちゃ過剰なコード書いてるだけだからな
529デフォルトの名無しさん
2020/09/08(火) 12:00:40.54ID:gglleEZ2 ライブラリは需要があればとっくに作られてる
今現在無いのはつまりそういうことだ
今現在無いのはつまりそういうことだ
530デフォルトの名無しさん
2020/09/08(火) 12:14:59.78ID:1sQ8nqM1 そこの無能が探してもいないだけで無いわけじゃないだろ
例えばあるライブラリの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();
と書ける
例えばあるライブラリの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.36ID:8muSUg7S select文を投げるのは
selectの結果が欲しいから投げる訳であって
結果が取得できる前に
後続のコードに勝手に動かれたら困るのは
当たり前だよなあ?
DBアクセスで非同期って何がメリットが
あるのか分からない。
それにnodeの概念はバカの新人に言葉で説明しにくいんだよ
あいつぜってー非同期とか理解出来ねえぞ
selectの結果が欲しいから投げる訳であって
結果が取得できる前に
後続のコードに勝手に動かれたら困るのは
当たり前だよなあ?
DBアクセスで非同期って何がメリットが
あるのか分からない。
それにnodeの概念はバカの新人に言葉で説明しにくいんだよ
あいつぜってー非同期とか理解出来ねえぞ
532デフォルトの名無しさん
2020/09/08(火) 13:47:44.03ID:op+kwVtr 新人に言葉で説明できないバカ
新人かわいそう
新人かわいそう
533デフォルトの名無しさん
2020/09/08(火) 13:57:56.32ID:c4WmASUK > 勝手に動かれたら
何も理解してないことがよく分かるw
何も理解してないことがよく分かるw
534デフォルトの名無しさん
2020/09/08(火) 14:51:08.13ID:QV2EnsJl お前の場合はMySQL一つしか使わないのが当たり前かもしれないが世の中にはシャードされた複数のMySQLにアクセスしたりキャッシュのRedisにアクセスしたり検索エンジンのelasticsearchにアクセスしたりいろんなことをしなきゃいけないアプリがあったりするわけ
Nodeではこれらは非同期だから特別なことをしなくてもたやすく並行アクセスできる
同期で並行アクセスしようとすると複数スレッド使って待ち合わせすることになるから非同期より簡単にできるわけではない
Nodeではこれらは非同期だから特別なことをしなくてもたやすく並行アクセスできる
同期で並行アクセスしようとすると複数スレッド使って待ち合わせすることになるから非同期より簡単にできるわけではない
535デフォルトの名無しさん
2020/09/08(火) 16:00:24.51ID:8muSUg7S536デフォルトの名無しさん
2020/09/08(火) 17:40:30.89ID:Qj0BclxS 本当に本当にダメなヤツだなぁ(呆れ)
アクセスってのは接続して要求を投げて結果を受け取ってそれを処理して接続を閉じるまでの一連に決まってるだろ
>>530の例だって後始末まで書いてあるのに全然大変じゃないだろが
アクセスってのは接続して要求を投げて結果を受け取ってそれを処理して接続を閉じるまでの一連に決まってるだろ
>>530の例だって後始末まで書いてあるのに全然大変じゃないだろが
537デフォルトの名無しさん
2020/09/08(火) 19:19:05.95ID:gglleEZ2 とりあえずオライリーでも読んだらいいんじゃない
https://www.am;azon.jp/dp/4873118735/
https://www.am;azon.jp/dp/4873118735/
538デフォルトの名無しさん
2020/09/09(水) 06:42:52.84ID:N3PFvdWI スレ的には真っ当な質問なのに当たり強過ぎでしょ
539デフォルトの名無しさん
2020/09/09(水) 08:44:06.86ID:7Dxn++Hv 質問じゃなくて文句
540デフォルトの名無しさん
2020/09/09(水) 17:07:03.98ID:SFlZHAWP 謙虚に質問してればレスも優しかったかもよ
541デフォルトの名無しさん
2020/09/09(水) 21:03:51.38ID:OFM+73CL 分からないだけならともかく延々と自分以外を貶めつつ無能を晒してたからなぁ
542デフォルトの名無しさん
2020/09/09(水) 21:12:34.50ID:XGuez22g それな
× node.js が悪い
× 非同期が悪い
× promise が悪い
× async/awaitが悪い
× 新人がバカ
○ ID:8muSUg7S がバカ
こうだからな
× node.js が悪い
× 非同期が悪い
× promise が悪い
× async/awaitが悪い
× 新人がバカ
○ ID:8muSUg7S がバカ
こうだからな
543デフォルトの名無しさん
2020/09/10(木) 14:55:06.91ID:rLZBXCmM グレたωωω
544デフォルトの名無しさん
2020/09/10(木) 19:56:10.61ID:FWP0gZB+ clusterでマルチプロセスしようとしたんだけど
「EADDRINUSE(ポートが既に使われている)」
エラーがどうしても出てしまいます。
もちろん既に稼働しているnodeはなく、
fork元のapp.jsでlistenしているのと同じポート
子プロセスでまたbindしようとして失敗しているようで
子プロセスは外部からリクエストを受けるような
ものではなく、重い処理をコア分散させて並列処理したいだけです
子プロセスにポート割り当てが必要な理由がよく分かりませんが
恐らく親プロセスと子プロセス間の通信
とかに使うんでしょうか?
子プロセスのポート割り当て回避か、
親プロセスと別ポートを割り当てる方法はありますか?
「EADDRINUSE(ポートが既に使われている)」
エラーがどうしても出てしまいます。
もちろん既に稼働しているnodeはなく、
fork元のapp.jsでlistenしているのと同じポート
子プロセスでまたbindしようとして失敗しているようで
子プロセスは外部からリクエストを受けるような
ものではなく、重い処理をコア分散させて並列処理したいだけです
子プロセスにポート割り当てが必要な理由がよく分かりませんが
恐らく親プロセスと子プロセス間の通信
とかに使うんでしょうか?
子プロセスのポート割り当て回避か、
親プロセスと別ポートを割り当てる方法はありますか?
545デフォルトの名無しさん
2020/09/10(木) 20:18:09.02ID:VafdMbGz > 子プロセスは外部からリクエストを受けるようなものではなく
それならclusterモジュールは必要なくね
clustetは複数のプロセスを使って大量のリクエストを捌くためのもの
ただの子プロセスならchild_processのメソッドを使う
それならclusterモジュールは必要なくね
clustetは複数のプロセスを使って大量のリクエストを捌くためのもの
ただの子プロセスならchild_processのメソッドを使う
546デフォルトの名無しさん
2020/09/10(木) 20:21:53.78ID:C+K2oJgr547デフォルトの名無しさん
2020/09/10(木) 20:43:38.94ID:oBZEl9rg clusterだと親は子を産むだけの役割じゃなかったっけ
548デフォルトの名無しさん
2020/09/10(木) 20:45:06.67ID:oBZEl9rg あとworker_threadsで同じエラーが出るのはいくらなんでもおかしい
549デフォルトの名無しさん
2020/09/14(月) 20:42:48.98ID:JdQogpR1 >>544 の者ですが
今日これをデバッグしてました。
clusterでもwoker_threadsfでも
child_processでも
「EADDRINUSE」が発生しました
発生するタイミングは子プロセスを生成した時でも
なく
子プロセスでMySQLに対しのコネクション確立時でもなく
確立したDBコネクションからクエリを投げるコード
を実行する時に発生しますが
なぜこのタイミングなのか分かりません
ここで気になったのが
nodeでフロントユーザーに対し
80番ポートをlistenしていて
nodeがローカルのMySQLにアクセスする時
nodeのクライアントポートはフロントと
おなじ80を使うのでしょうか?
それとも別のランダムポートを取得してきて使うのでしょうか?
今日これをデバッグしてました。
clusterでもwoker_threadsfでも
child_processでも
「EADDRINUSE」が発生しました
発生するタイミングは子プロセスを生成した時でも
なく
子プロセスでMySQLに対しのコネクション確立時でもなく
確立したDBコネクションからクエリを投げるコード
を実行する時に発生しますが
なぜこのタイミングなのか分かりません
ここで気になったのが
nodeでフロントユーザーに対し
80番ポートをlistenしていて
nodeがローカルのMySQLにアクセスする時
nodeのクライアントポートはフロントと
おなじ80を使うのでしょうか?
それとも別のランダムポートを取得してきて使うのでしょうか?
550デフォルトの名無しさん
2020/09/14(月) 20:55:49.60ID:AayaioGL 説明と全然違う事象じゃねーの
せめてエラーメッセージとスタックトレース貼れ
せめてエラーメッセージとスタックトレース貼れ
551デフォルトの名無しさん
2020/09/14(月) 20:55:58.86ID:JdQogpR1 続きですか
もう少し調べてみると
「EADDRINUSE」が発生するタイミングは
MySQLに対しコネクション確立後
SQLを投げる時で間違いないと思いますが、
エラーのスタックとレースを見ても
何かのハンドラから駆動されており自分の書いたコードでは
ありません。
nodeかexpressかmysqlモジュールのハンドラ
だと思います
子プロセスはローカルのMySQLに対して
接続して読み書きするだけで
フロントとのやり取りは一切ありませんが
生成元の親プロセスはExpressのapp.js
で立ち上げてるwebアプリです
もう少し調べてみると
「EADDRINUSE」が発生するタイミングは
MySQLに対しコネクション確立後
SQLを投げる時で間違いないと思いますが、
エラーのスタックとレースを見ても
何かのハンドラから駆動されており自分の書いたコードでは
ありません。
nodeかexpressかmysqlモジュールのハンドラ
だと思います
子プロセスはローカルのMySQLに対して
接続して読み書きするだけで
フロントとのやり取りは一切ありませんが
生成元の親プロセスはExpressのapp.js
で立ち上げてるwebアプリです
552デフォルトの名無しさん
2020/09/14(月) 20:56:11.94ID:JdQogpR1 不思議なのが子プロセスで
mysqlとコネクション確立までは失敗せずに
動作し、SQLを投げる段階で
なぜか大元の「app.js」をもう1つ起動しようとしており
app.jsはもう既に起動してるので、
listenポート重複により上記のエラーが発生するわけです
暫定対応で動くようにはなりましたが、
なぜローカルのDBアクセス時にapp.js実行する
動きをするのかの原因がまだ分かっていません
webとは関係ないはずの子プロセスのファイルを
単体でコマンドで実行した場合も
Expressのベースディレクトリにある
「app.js」が実行されていることが分かりました。
自身のコードではこのようなことをしてないので
フレームワークかモジュールの内部処理だと思いますが、
知っている方がいましたら教えてください。
mysqlとコネクション確立までは失敗せずに
動作し、SQLを投げる段階で
なぜか大元の「app.js」をもう1つ起動しようとしており
app.jsはもう既に起動してるので、
listenポート重複により上記のエラーが発生するわけです
暫定対応で動くようにはなりましたが、
なぜローカルのDBアクセス時にapp.js実行する
動きをするのかの原因がまだ分かっていません
webとは関係ないはずの子プロセスのファイルを
単体でコマンドで実行した場合も
Expressのベースディレクトリにある
「app.js」が実行されていることが分かりました。
自身のコードではこのようなことをしてないので
フレームワークかモジュールの内部処理だと思いますが、
知っている方がいましたら教えてください。
553デフォルトの名無しさん
2020/09/14(月) 20:57:39.11ID:JdQogpR1554デフォルトの名無しさん
2020/09/14(月) 21:14:49.11ID:AayaioGL > 単体でコマンドで実行した場合も
> Expressのベースディレクトリにある
> 「app.js」が実行されていることが分かりました。
clusterも何も関係ねーじゃんwww
断言するがフレームワークもモジュールもmysqlも関係なくてお前のバグだから真面目に仕事しろ
子プロセスから再現に関係ない部分を削除しまくって最小限のここで見せられるコードになるまで書き込まなくていいよ
> Expressのベースディレクトリにある
> 「app.js」が実行されていることが分かりました。
clusterも何も関係ねーじゃんwww
断言するがフレームワークもモジュールもmysqlも関係なくてお前のバグだから真面目に仕事しろ
子プロセスから再現に関係ない部分を削除しまくって最小限のここで見せられるコードになるまで書き込まなくていいよ
555デフォルトの名無しさん
2020/10/03(土) 14:17:11.74ID:l4QjehZB https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q14232251614?sort=1&page=2
abiko tetuってやつヤバすぎ
abiko tetuってやつヤバすぎ
556デフォルトの名無しさん
2020/10/17(土) 18:10:22.96ID:cX3MrjsP フォルダ全体をコピーしたくて 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
を試しましたが、途中で警告が出たりして、結局、元のエラーは直りません。
直す方法はありますでしょうか?
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
を試しましたが、途中で警告が出たりして、結局、元のエラーは直りません。
直す方法はありますでしょうか?
557デフォルトの名無しさん
2020/10/17(土) 18:39:14.64ID:cX3MrjsP >>556
結論的には、
$ npm install -g fs-extra
$ set NODE_PATH=%AppData%\npm\node_modules
としてから、
node xxxx.js
とすると直りました。
結論的には、
$ npm install -g fs-extra
$ set NODE_PATH=%AppData%\npm\node_modules
としてから、
node xxxx.js
とすると直りました。
558デフォルトの名無しさん
2020/10/17(土) 23:48:03.55ID:5XNVi7jP Windows?
559デフォルトの名無しさん
2020/10/19(月) 16:19:09.43ID:faSV5MEm # Fatal error in , line 0
とか見慣れぬエラーで落ちててビビって調べたらv14のバグか
とか見慣れぬエラーで落ちててビビって調べたらv14のバグか
560デフォルトの名無しさん
2020/10/25(日) 03:29:13.70ID:xG/xcmJA import って mjsにしないといけないし
561デフォルトの名無しさん
2020/10/25(日) 03:30:20.11ID:xG/xcmJA 途中送信すまん
562デフォルトの名無しさん
2020/10/25(日) 04:23:13.46ID:Xs0QdE0/ mjsにしないといけないから何なんだよ気になるだろ…
因みにpackage.json弄れば.jsをESM扱いにはできる
因みにpackage.json弄れば.jsをESM扱いにはできる
563デフォルトの名無しさん
2020/10/25(日) 13:32:05.91ID:xG/xcmJA node v15にしたからmjsにして requireを全部importに変更したらpuppeteerがimportできなくてまたrequireに戻した
564デフォルトの名無しさん
2020/10/26(月) 06:48:46.11ID:AP4vuhmG 下記のモジュールを使用してHTMLソースからタグを全て取り除く処理を作っているのですが、タグを取り除いてくれません。
ES6で記述されたjavascriptを対応していないブラウザで動作させるために記法を変換してから読み込ませることは知っているのですが、
nodeコマンドで直接実行する場合にもそのような記法の変換などが必要なのでしょうか?
◆モジュール
https://github.com/ericnorris/striptags
◆ソース
main.js
-----
var striptags = require('striptags');
striptags(html);
console.log(html); // 取り除かれていない
◆コンソールで書きコマンドを実行
node main.js
ES6で記述されたjavascriptを対応していないブラウザで動作させるために記法を変換してから読み込ませることは知っているのですが、
nodeコマンドで直接実行する場合にもそのような記法の変換などが必要なのでしょうか?
◆モジュール
https://github.com/ericnorris/striptags
◆ソース
main.js
-----
var striptags = require('striptags');
striptags(html);
console.log(html); // 取り除かれていない
◆コンソールで書きコマンドを実行
node main.js
565デフォルトの名無しさん
2020/10/26(月) 13:39:27.76ID:jWz3MMEX html = striptags(html);
じゃないの?
じゃないの?
566デフォルトの名無しさん
2020/10/26(月) 14:12:32.65ID:AP4vuhmG >>565
教えて頂いた方法で取り除かれていることが確認できました。
公開されているソースを確認したら戻り値を受け取るようになっていました。
今後はソースも確認するようにします。
ありがとうございました。
教えて頂いた方法で取り除かれていることが確認できました。
公開されているソースを確認したら戻り値を受け取るようになっていました。
今後はソースも確認するようにします。
ありがとうございました。
567デフォルトの名無しさん
2020/10/26(月) 14:44:15.69ID:/aZJ5myY その前にJavaScriptの勉強をちゃんとすべきでは。。。
JSの文字列は不変って知ってればstriptagsの使い方を知らなくても>>564の書き方じゃダメってわかったはず
JSの文字列は不変って知ってればstriptagsの使い方を知らなくても>>564の書き方じゃダメってわかったはず
568デフォルトの名無しさん
2020/10/28(水) 03:46:46.75ID:Xggm0kAQ Fetchより先にAbortControllerが来るのタイムパラドックス感がある
569デフォルトの名無しさん
2020/10/28(水) 14:31:46.46ID:jeoOjGPI node.jsがあればPHPはもういらないよね?
570デフォルトの名無しさん
2020/10/28(水) 14:45:56.45ID:Nt7id6vD そんなことはない
571デフォルトの名無しさん
2020/10/28(水) 23:57:51.70ID:jeoOjGPI >>570
なぜ?
なぜ?
572デフォルトの名無しさん
2020/10/29(木) 00:23:44.55ID:6kIeo5xU rdb扱うのはphpの方が得意やろ
573デフォルトの名無しさん
2020/10/29(木) 00:35:34.69ID:Phiv6uZl >>563
v15で試したけど import puppeteer from 'puppeteer' で読み込めてるよ
v15で試したけど import puppeteer from 'puppeteer' で読み込めてるよ
574デフォルトの名無しさん
2020/10/29(木) 10:07:34.55ID:D91L/a15 俺も文法的にはPHPよりもjavascriptの方が好みなので、できれば移行したいんだけど、
URL単位で小物サービスを作る用途がメインなので今でもPHPを使ってしまう。
なんか、node.jsはCGI的に使うのはナンセンスという雰囲気があって、
でも、たまにしか使わない小物サービス毎にポート番号を消費したくない、
と思うと移行できない。
こんな俺にもおすすめなnode.jsの使い方ってある?
URL単位で小物サービスを作る用途がメインなので今でもPHPを使ってしまう。
なんか、node.jsはCGI的に使うのはナンセンスという雰囲気があって、
でも、たまにしか使わない小物サービス毎にポート番号を消費したくない、
と思うと移行できない。
こんな俺にもおすすめなnode.jsの使い方ってある?
575デフォルトの名無しさん
2020/10/29(木) 10:28:14.20ID:89EHBpBz レンタルサーバーだといまだにPHPだかんね
576デフォルトの名無しさん
2020/10/29(木) 11:43:25.35ID:6uKcySyb >>573
ありがとうございます。 -gでインストールしてたのがいけないっぽいです
ありがとうございます。 -gでインストールしてたのがいけないっぽいです
577デフォルトの名無しさん
2020/10/29(木) 16:31:46.11ID:Phiv6uZl578デフォルトの名無しさん
2020/10/29(木) 21:26:42.11ID:/i1l21sm >>574
無料オンライン格ゲーを作る。
無料オンライン格ゲーを作る。
579デフォルトの名無しさん
2020/10/29(木) 23:24:45.00ID:D91L/a15580デフォルトの名無しさん
2020/11/07(土) 11:58:54.69ID:fULQIOig npm-run-all で複数のnpm scriptを連続で実行したいんだが、scriptのどれか一つでも
0以外のステータスを返すとそこで処理をやめてしまうのをどうにかできないのかな。
大抵の場合はその仕様でもいいんだけど、たまに、エラーだろうがなんだろうがとにかく
処理しきってしまいたい場合がある。
0以外のステータスを返すとそこで処理をやめてしまうのをどうにかできないのかな。
大抵の場合はその仕様でもいいんだけど、たまに、エラーだろうがなんだろうがとにかく
処理しきってしまいたい場合がある。
581デフォルトの名無しさん
2020/11/07(土) 12:35:45.81ID:1KfyiAX9582デフォルトの名無しさん
2020/11/07(土) 12:39:43.17ID:fULQIOig さんきう。オプション見落としてた。
583デフォルトの名無しさん
2020/11/14(土) 16:32:10.90ID:XA/NhCB9 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じゃなくてエラー画面が出るのが愛嬌だけど。
$ 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じゃなくてエラー画面が出るのが愛嬌だけど。
584デフォルトの名無しさん
2020/11/18(水) 14:56:07.27ID:7Ekft4aV おめーら的にdenoってどうすか?
使ったことなさそうだけど
使ったことなさそうだけど
585デフォルトの名無しさん
2020/11/18(水) 19:28:04.93ID:Zh0DQZnV ほんのちょっとしか触ってないけど面倒くささが無い
npmライブラリが使えないけど init だの install だの package.json だの tsc だのやったりいじったりしないで済むから手軽に感じた
時間が経ってライブラリが充実してくれれば普通に使いやすい環境だと思う
npmライブラリが使えないけど init だの install だの package.json だの tsc だのやったりいじったりしないで済むから手軽に感じた
時間が経ってライブラリが充実してくれれば普通に使いやすい環境だと思う
586デフォルトの名無しさん
2020/11/18(水) 20:11:49.14ID:7Ekft4aV 期待したいよな
開発者はイケメンだし
開発者はイケメンだし
587デフォルトの名無しさん
2020/11/18(水) 21:25:12.52ID:v8HWKopj npmが使えないからエコシステムが育つまで様子見だな。
@types以前のTypeScriptみたいな。
@types以前のTypeScriptみたいな。
588デフォルトの名無しさん
2020/11/19(木) 01:51:43.98ID:/aqa7r+0 io.jsのように良い部分はNode.js側に取り込んでほしいね
最近は複雑さばかりが増しているし
最近は複雑さばかりが増しているし
589デフォルトの名無しさん
2020/11/21(土) 19:45:56.38ID:ANSb4B/j 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
どうすればいいの?
$ 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
590デフォルトの名無しさん
2020/11/21(土) 23:08:26.52ID:jQLdetle Ruby のBundler なら、プロジェクトルートに移動してから、
Gemfile にバージョン指定を書いて、
bundle install とコマンド入力するけど
Gemfile にバージョン指定を書いて、
bundle install とコマンド入力するけど
591デフォルトの名無しさん
2020/11/21(土) 23:54:59.89ID:lsz7D7Ic592デフォルトの名無しさん
2020/11/22(日) 00:38:30.85ID:gYBzGuNC expressは当時koaに移行するのかと思ってたけど結局どっちも開発続いてるのな
593デフォルトの名無しさん
2020/11/22(日) 00:44:07.65ID:A21DE4YF koaもhapiもfastifyもexpressの牙城は崩せそうもない
594デフォルトの名無しさん
2020/11/22(日) 00:46:23.77ID:7U8BOc5J >>591
ありがとう。やってみたけどダメだった。
途中の表示にはexpress@5.0.0-alpha.8って出てるのに…
なんか晒すべき設定ってある?
$ npm init --y
$ npm i express@next
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.
+ express@5.0.0-alpha.8
added 57 packages from 39 contributors and audited 57 packages in 4.105s
found 0 vulnerabilities
$ npm view express version
4.17.1
ありがとう。やってみたけどダメだった。
途中の表示にはexpress@5.0.0-alpha.8って出てるのに…
なんか晒すべき設定ってある?
$ npm init --y
$ npm i express@next
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.
+ express@5.0.0-alpha.8
added 57 packages from 39 contributors and audited 57 packages in 4.105s
found 0 vulnerabilities
$ npm view express version
4.17.1
595デフォルトの名無しさん
2020/11/22(日) 01:12:26.72ID:uIWU98XF viewコマンドはインストールされたものじゃなくて公開されてるパッケージの情報見るものよ
596デフォルトの名無しさん
2020/11/22(日) 01:15:05.72ID:nMBoVd/n597デフォルトの名無しさん
2020/11/22(日) 01:19:23.91ID:ujQ9d+0r >>594
インストールの時は
$ npm i express@next
って打ってるくせに
なんで
$ npm view express version
って打つわけ?
それなら
$ npm view express@next version
でしょうが…
インストールの時は
$ npm i express@next
って打ってるくせに
なんで
$ npm view express version
って打つわけ?
それなら
$ npm view express@next version
でしょうが…
598デフォルトの名無しさん
2020/11/22(日) 09:31:06.57ID:7U8BOc5J >>595-597
ありがとう。バージョン確認方法の方が間違ってたのか。
あぶねえ。パッケージ側の情報で確認してたら、何を試しても永遠に出来ないって言ってるところだったw
改めて確認したら、ちゃんと5.xが入ってた。
お騒がせしました。
$ npm ls express | grep express
└── express@5.0.0-alpha.8
ありがとう。バージョン確認方法の方が間違ってたのか。
あぶねえ。パッケージ側の情報で確認してたら、何を試しても永遠に出来ないって言ってるところだったw
改めて確認したら、ちゃんと5.xが入ってた。
お騒がせしました。
$ npm ls express | grep express
└── express@5.0.0-alpha.8
599デフォルトの名無しさん
2020/11/23(月) 12:57:39.74ID:3jYl7MgH node.jsのドキュメントや書籍等で、セキュリティー対策を考慮して書かれているものがあれば教えてください
600uy ◆e6.oHu1j.o
2020/11/24(火) 12:43:32.88ID:gfNKbZsO601デフォルトの名無しさん
2021/01/01(金) 19:21:03.31ID:/+4IUuLb さくらVPSとかのlinuxサーバにwebアプリをデプロイするベターな手順ってなんかありますか
単純に考えれば、既存のサーバ中のプロジェクトフォルダを消して gitから新しくpullしてnpm ciすればいいはずなんだが
・毎回node_modulesを作るのは時間がかかるから、package-lock.json に変更が無い場合はそのまま引き継ぎたい
・ローカルの設定、ログフォルダといった、消したくないフォルダがある
からちょっと面倒でなんとかしたい
nodejs deployment tool とかで検索しても、すぐ自社のSaasに誘導しようとして
素のEC2的なlinuxマシンでの方法が分からなかった。
単純に考えれば、既存のサーバ中のプロジェクトフォルダを消して gitから新しくpullしてnpm ciすればいいはずなんだが
・毎回node_modulesを作るのは時間がかかるから、package-lock.json に変更が無い場合はそのまま引き継ぎたい
・ローカルの設定、ログフォルダといった、消したくないフォルダがある
からちょっと面倒でなんとかしたい
nodejs deployment tool とかで検索しても、すぐ自社のSaasに誘導しようとして
素のEC2的なlinuxマシンでの方法が分からなかった。
602デフォルトの名無しさん
2021/01/02(土) 03:22:23.36ID:HtnkmSa8 普通にDockerでnpm i後のイメージ作ればいいんじゃない
603デフォルトの名無しさん
2021/01/02(土) 04:25:18.76ID:VICQRi/P >>602
ありがとうございます。やはりdockerか。
docker使えない自分はこんな感じでやっていました。
>・毎回node_modulesを作るのは時間がかかるから、package-lock.json に変更が無い場合はそのまま引き継ぎたい
git fetchした後git diff HEAD..origin/master -- package.json で変更があるか確認出来る。
変更があった場合のみnpm installすればいい。
>・ローカルの設定、ログフォルダといった、消したくないフォルダがある
ログフォルダや設定ファイルは.gitignoreしてあるはずだから、気にせず毎回git merge origin/master しても全く問題ないはず。
深く考えすぎてて、普通に手を動かしたら違和感なくデプロイ出来ました。
ありがとうございます。やはりdockerか。
docker使えない自分はこんな感じでやっていました。
>・毎回node_modulesを作るのは時間がかかるから、package-lock.json に変更が無い場合はそのまま引き継ぎたい
git fetchした後git diff HEAD..origin/master -- package.json で変更があるか確認出来る。
変更があった場合のみnpm installすればいい。
>・ローカルの設定、ログフォルダといった、消したくないフォルダがある
ログフォルダや設定ファイルは.gitignoreしてあるはずだから、気にせず毎回git merge origin/master しても全く問題ないはず。
深く考えすぎてて、普通に手を動かしたら違和感なくデプロイ出来ました。
604デフォルトの名無しさん
2021/03/01(月) 09:14:19.43ID:vtDgs//2 for文について質問させてください。
const execTime = new Date(2021,0,1);
for (
const ix = new Date(execTime.getTime());
ix.getMonth() === execTime.getMonth();
ix.setDate(ix.getDate() + 1)
) {
console.log(ix);
}
これを実行すると、以下のようになります。
2020-12-31T15:00:00.000Z
...
2021-01-30T15:00:00.000Z
なぜ1月1日〜1月31日にならないのでしょうか?
どのように書けばいいのか教えてください。
node -v
v15.9.0
const execTime = new Date(2021,0,1);
for (
const ix = new Date(execTime.getTime());
ix.getMonth() === execTime.getMonth();
ix.setDate(ix.getDate() + 1)
) {
console.log(ix);
}
これを実行すると、以下のようになります。
2020-12-31T15:00:00.000Z
...
2021-01-30T15:00:00.000Z
なぜ1月1日〜1月31日にならないのでしょうか?
どのように書けばいいのか教えてください。
node -v
v15.9.0
605デフォルトの名無しさん
2021/03/01(月) 09:46:34.15ID:g7xhMPQT タイムゾーン
606デフォルトの名無しさん
2021/03/01(月) 11:40:37.52ID:vtDgs//2607デフォルトの名無しさん
2021/03/01(月) 17:11:01.18ID:Jj2WQfq1 npm outdateをCLIじゃなくてNode側から使う方法ってない?
stdoutからパースするのは流石に手間で
stdoutからパースするのは流石に手間で
608デフォルトの名無しさん
2021/03/01(月) 17:57:45.51ID:LQGHEOvf こいつを直接使えばいんじゃねーの知らんけど
https://github.com/npm/cli/blob/latest/lib/outdated.js
https://github.com/npm/cli/blob/latest/lib/outdated.js
609デフォルトの名無しさん
2021/03/01(月) 22:10:08.82ID:Jj2WQfq1 >>608
thx
試しにnode_modules/lib/outdated.jsがexportしてる関数を叩いてみたけど
内部のglobalディレクトリ参照でコケているようなエラーが出て機能しなかった
npm自体がModとしてのexportするのもAPIのないEventEmitterインスタンスだし想定してなさそうだ
諦めて自前で実装しているユーザーパッケージを適当に探すよ
thx
試しにnode_modules/lib/outdated.jsがexportしてる関数を叩いてみたけど
内部のglobalディレクトリ参照でコケているようなエラーが出て機能しなかった
npm自体がModとしてのexportするのもAPIのないEventEmitterインスタンスだし想定してなさそうだ
諦めて自前で実装しているユーザーパッケージを適当に探すよ
610デフォルトの名無しさん
2021/04/24(土) 07:20:56.16ID:CqGuC/ho JavaScript/TypeScriptランタイム環境「Deno 1.9」がリリース、パフォーマンス向上に寄与する機能追加など
https://codezine.jp/article/detail/13970
https://codezine.jp/article/detail/13970
611デフォルトの名無しさん
2021/07/14(水) 17:16:26.21ID:x3WS9adn 質問ってここで良いの?
Angularが良くわかないんだけど、例えばmd-toobarとmat-toolbarはなにが違うの?
いま触っているのが全部md-xxxだけど、ググるとmat-xxxばかり
package.jsonも、angularーmaterialになっているけど、ググって出てくるのは@angular/materialで、違いが分からない
Angularが良くわかないんだけど、例えばmd-toobarとmat-toolbarはなにが違うの?
いま触っているのが全部md-xxxだけど、ググるとmat-xxxばかり
package.jsonも、angularーmaterialになっているけど、ググって出てくるのは@angular/materialで、違いが分からない
612デフォルトの名無しさん
2021/07/16(金) 23:12:53.43ID:ku0oROTf dnsモジュールのgetServers()が初回実行時の内容キャッシュしてて使い物にならん
>>611
フロントエンドスレが一応立ってるからそっちで聞いてみれば
あとはWeb制作板に質問スレあったけど大分前に荒らしに乗っ取られて今はどうなってるやら
>>611
フロントエンドスレが一応立ってるからそっちで聞いてみれば
あとはWeb制作板に質問スレあったけど大分前に荒らしに乗っ取られて今はどうなってるやら
613デフォルトの名無しさん
2021/07/30(金) 15:13:55.95ID:COPEXZUK Ubuntu18.04でNode.js8.10.0を使ってるのですが、
BigIntのリテラル(例:10N)が使えません。
どうやったら使えるように出来るのでしょう?
BigIntのリテラル(例:10N)が使えません。
どうやったら使えるように出来るのでしょう?
614デフォルトの名無しさん
2021/07/30(金) 15:53:45.87ID:0CdNCLhG Node.jsをv12以上にする(細かいこと言うとv10の途中から使える)
615デフォルトの名無しさん
2021/07/30(金) 17:48:26.38ID:n/UloM9p 漏れは、Windows 10, WSL2, Ubuntu 18.04, VSCode だけど、
Linux側には、日本人が作った、バージョンマネージャーのanyenv で、rbenv, nodenv を使って、
ruby 2.6.6, node 12.16.2 を入れた
yarn は、Windows側に入れて、Linux側から、拡張子なしのyarn コマンドを呼べる。
これは、#!/bin/sh で始まるシェルスクリプト
anyenv 公式サイト
https://github.com/anyenv/anyenv
anyenv + macOS環境構築
https://qiita.com/rinpa/items/81766cd6a7b23dea9f3c
anyenv は多言語向きで、rbenv, nodenv, pyenv, phpenv などを同じ使い方で、統一的に扱える。
~/.bashrc に、下の2行を追加するだけで、各言語ごとに追加しなくても良い
export PATH="$HOME/.anyenv/bin:$PATH"
eval "$(anyenv init -)"
Linux側には、日本人が作った、バージョンマネージャーのanyenv で、rbenv, nodenv を使って、
ruby 2.6.6, node 12.16.2 を入れた
yarn は、Windows側に入れて、Linux側から、拡張子なしのyarn コマンドを呼べる。
これは、#!/bin/sh で始まるシェルスクリプト
anyenv 公式サイト
https://github.com/anyenv/anyenv
anyenv + macOS環境構築
https://qiita.com/rinpa/items/81766cd6a7b23dea9f3c
anyenv は多言語向きで、rbenv, nodenv, pyenv, phpenv などを同じ使い方で、統一的に扱える。
~/.bashrc に、下の2行を追加するだけで、各言語ごとに追加しなくても良い
export PATH="$HOME/.anyenv/bin:$PATH"
eval "$(anyenv init -)"
レスを投稿する
ニュース
- 【芸能】「加害の歴史を直視しない政治家が国の顔に」 宍戸開の批判に議論勃! 高市発言で揺れる芸能界… [冬月記者★]
- 【日中対立】在日本中国大使館、サンフランシスコ講和条約「不法かつ無効な文書」とSNSに投稿 高市首相が党首討論で引用 ★2 [ぐれ★]
- 拳銃24丁を中国から日本国内に輸入した疑い 中国人の46歳の男逮捕 1丁約3000円で販売 [七波羅探題★]
- 糖尿病疑い全国で1100万人、8年で100万人増…厚労省推計 [蚤の市★]
- 【文春】AKB48『紅白歌合戦』出場へ! 前田敦子&大島優子が限定復活! 『ヘビロテ』など黄金期メドレー披露 神7の多くが出場 [冬月記者★]
- 【芸能】落合博満氏、『もし今の時代の選手だったらメジャーで活躍したか?』の質問に即答 会場どよめき [冬月記者★]
- 4:44:44.444
- 【緊急】12月3日4時56分に>>78をゲットするスレ
- 【悲報】日本政府、フランスに「習近平をG7に呼ばないで」と懇願していたwww [237216734]
- 高市を逐一擁護していたJSF、さすがに高市の「戦艦」発言に耐えきれず批判 ネトウヨ発狂へ [165981677]
- 雪はまだか?
- 【悲報】人気VTuberの天音かなたさん、ホロライブ卒業★5 [485689427]
