【node.js】サーバサイドjavascript 5【Nashorn】
: [] 2018/02/13(火) 22:21:33.91:moEhrPrC pythonやrubyやPHPと同じ土俵でjavascriptが使えるようになりました。 サーバサイドjavascriptについて語りましょう。 node.js - googleが開発したV8エンジン上で実行できる処理系 ttp://jump.5ch.net/?http://nodejs.org/ ayo.js - node.js 互換で Rod の影響からの脱却を目指す処理系 ttp://jump.5ch.net/?https://github.com/ayojs/ayo Nashorn - Java8 からRhinoに代わって同梱されているJavaScriptエンジン ttp://jump.5ch.net/?http://www.oracle.com/webfolder/technetwork/jp/javamagazine/Java-JA17-Nashorn.pdf ayo.js の経緯 ttp://jump.5ch.net/?https://web.archive.org/web/20170821212745/https://github.com/nodejs/TSC/issues/310 javascriptはrubyと比較してもかなり速い ttp://jump.5ch.net/?http://shootout.alioth.debian.org/u32/benchmark.php?test=all&lang=v8&lang2=yarv 基礎から学ぶNode.js ttp://jump.5ch.net/?http://gihyo.jp/dev/serial/01/nodejs node.jsの概要とアプリケーション開発の準備 ttp://jump.5ch.net/?http://gihyo.jp/dev/serial/01/realtimeweb/0002 前スレ 【node.js】サーバサイドjavascript 4【io.js】 ttp://mevius.5ch.net/test/read.cgi/tech/1460359714/ 【node.js】サーバサイドjavascript 3【io.js】 ttp://echo.2ch.net/test/read.cgi/tech/1419673207/ 【node.js】サーバサイドjavascript 2【Rhino】 ttp://peace.2ch.net/test/read.cgi/tech/1358937029/ 【node.js】サーバサイドjavascript【Rhino】 ttp://toro.2ch.net/test/read.cgi/tech/1310087535/ : [sage] 2018/02/13(火) 22:45:24.68:dgfWGlMV スレ立てとテンプレ更新乙 : [sage] 2018/02/13(火) 23:16:03.20:RZh6bj8U 乙 : [sage] 2018/02/14(水) 07:27:19.83:QhkCr6hZ ={乙} : [sage] 2018/02/14(水) 12:47:30.67:QhkCr6hZ じゃぁ聞くけどjavaで作るよりnode.jsの方がいい利点はなに? : [sage] 2018/02/14(水) 12:51:28.06:Dh0Ktwjh じゃあ? : [] 2018/02/14(水) 13:32:00.27:eUHthdqL サーバサイドとクライアントサイドでコードの共有化ができるくらいかな。 俺はTypeScript大好きっ子だからjsに型がないという弱点も克服したし。 : [sage] 2018/02/14(水) 14:53:00.89:GP+9iuzv javascriptは言語仕様も実装も活発に更新されてる生きた言語だけどjavaは…… 去年はjava9とjava ee 8が出たけど内容は乏しくて死につつある言語 cobolのように現役で使われてはいるけど見向きもされない言語にまっしぐら : [sage] 2018/02/14(水) 16:25:13.94:H2gVyVCN そのくせ昔のが動かなくならないようにとバックワードコンパチビリティがキチガイみたいに徹底してるのが好き。 rubyとかpythonとかphpとかとてもやってられない。 : [sage] 2018/02/14(水) 16:34:15.53:I0RXr+6s Javaはこれからの言語じゃなくてこれまでの言語ということだな 未来より過去が大事 : [sage] 2018/02/14(水) 16:41:30.19:X6WT15xX 大体Oracleが悪い : [sage] 2018/02/14(水) 16:59:02.39:OvGNKU5V 「そのくせ」の使い方を間違えている 活発に更新されている言語なのに(逆接)互換性命なら「そのくせ」でいいけど : [sage] 2018/02/14(水) 17:52:07.97:X6WT15xX ネガティブに対してポジティブだから逆接であってる : [sage] 2018/02/14(水) 17:57:48.03:QhkCr6hZ javaの本は今でもたくさんあるのに、node.jsの本はちょっとしかなく、前より減ってるけど それでも未来はあるの? : [sage] 2018/02/14(水) 18:07:53.31:0/UN9UNj それは視点ないし評価の反転であって主従ないし因果関係としては順接だろう 「そのくせ」よりも「だからこそ」の方が適切だと思う : [sage] 2018/02/14(水) 18:08:56.46:0/UN9UNj プログラミングの本には未来がないだろうね : [sage] 2018/02/14(水) 18:14:23.49:Dh0Ktwjh お前は日本語以前の問題とみた : [sage] 2018/02/14(水) 18:15:48.39:tUoPyiUs バレたか : [sage] 2018/02/14(水) 18:38:00.97:eUHthdqL 前スレで言ってたように言語仕様が毎年更新されるから出しづらいのかも。 と言うか皆買わないんじゃないかな。 本なくても使えるし。 : [sage] 2018/02/14(水) 18:44:00.97:eUHthdqL javaはjavaでjava vmの部分で生き残るんじゃないの kotlinがあるから最新トレンドの言語仕様が使えるし。 最近はASTとかを駆使してコードの変換も個人でかけるようになったし気にせずいろんな言語で書いて最悪トランスレータをかけばいいよw : [sage] 2018/02/14(水) 19:09:33.80:nJ8XQB9a kotlinはnativeもやってるからjvmなくても生きていける可能性がある そこら辺はandroid次第 : [sage] 2018/02/14(水) 19:32:54.87:H2gVyVCN だけどjavascriptのこと書いたんだけどjavaと勘違いしてる人がいるみたいで… 言葉足らずだったわゴメンゴメン : [sage] 2018/02/14(水) 21:24:49.82:zjyx6XTj ブラウザではともかくnode.jsでは後方互換性が徹底されてるとは感じない : [sage] 2018/02/14(水) 23:05:01.77:1QOtYRN6 つまりAPIの破壊的変更が多いってことかね?あんまし使ったことがないから知らんかった。どの辺の話? : [sage] 2018/02/14(水) 23:28:14.70:itb3AbpA v0.12まではほとんどどこでも壊れてたイメージ streamから何から v4以降はネイティブアドオンでなければ深刻じゃないかな 細かい非互換性は日本語のブログなんかでもまとめられてる 今はsemverだからメジャーバージョンアップは後方非互換なんでLTSでも年に一回は動かなくなる可能性がある : [sage] 2018/02/14(水) 23:32:27.00:4HiMoKqx なーんだ、結局rubyやpythonやphpとおんなじじゃん。ガッカリ : [sage] 2018/02/14(水) 23:49:34.96:X6WT15xX active期間が終わってから1年間のmaintenance期間があるわけだからその間に移行しろってことでしょ メジャーバージョンアップが頻繁だってのは分かるけど : [sage] 2018/02/15(木) 00:44:38.71:xvxGqpCI Meteor.jsを結構前にチュートリアルを一通りやったときは バックエンドとクライアントでコードを共有できる喜びは感じたかな。 ただ惜しむらくはDBがmongoDB固定だったこと。 今は変わっただろうか? 仕組み上他のDBにしづらいフレームワークで色々ロックインしちゃうんだけど 当時からなんだかとってもPWAって感じだった。 : [sage] 2018/02/15(木) 07:48:47.58:0lPDoa5Y 今jsしてないんだけどフロント周りはまだ暴風雨状態なの? : [sage] 2018/02/15(木) 08:00:29.63:SuVvVuMr うん : [sage] 2018/02/15(木) 13:45:36.01:ungn8NGW React選んだ人は3年くらい無風じゃね あれこれ手を出してる人もいるだろつけど : [sage] 2018/02/15(木) 13:52:45.80:J0hKQiJo reactはreduxとか, 本体より周辺が暴風雨なイメージ : [sage] 2018/02/15(木) 14:53:55.86:Z5nyO2py 非同期はいいぞーって言われても、処理終了まで待ちたい場合は、プログレスバーとか出せばいいの? : [sage] 2018/02/15(木) 14:54:13.33:YSj3CECL react無風か?今やv16だぞ何年前のライブラリだっけ? +reduxでreactと同等のことができるhyperappがスンバらしい。300行しかないのにコードが読みやすい。 : [sage] 2018/02/15(木) 15:04:03.11:2TdTJC2z reactはv0.14→v15→v16だから落ち着いたものだよ 非互換な変更はまず警告が出るバージョンがリリースされて次のバージョンで変更とかだし移行のためのツールも提供されるし : [sage] 2018/02/15(木) 15:25:42.03:Z5nyO2py Electronってやつと同じことはjavaじゃできないんですか : [sage] 2018/02/15(木) 16:02:18.16:Y2MAEGuu vscode→electronベースのide webstorm→javaベースのide 同じようなアプリを作れるかって意味ならできるんじゃね? : [sage] 2018/02/15(木) 16:14:19.77:Z5nyO2py これから業務用アプリもスマホ化してきますやんかー、 そうしたらHTML5とかで作るって話になりますやんかー javaには無理?node.jsじゃないとだめ? : [sage] 2018/02/15(木) 16:30:14.63:1CgTZOOO wasmにコンパイルすれば? : [sage] 2018/02/15(木) 16:32:27.60:x1xC6fNl クライアントとサーバの区別は出来てるか? : [sage] 2018/02/15(木) 16:38:36.43:Z5nyO2py wasmなんかよさげなこと書いてますね、unityもいけるのか : [sage] 2018/02/15(木) 19:06:28.24:IXv90w8V wasmよくわからんかった ためしにunityの何かを入れてみたけど、ぜんぜん動かない : [sage] 2018/02/15(木) 21:04:19.20:soH0s4OR JavaScriptがwasmにコンパイル出来たらいいんだがなぁ。 動的な部分が多いからコンパイル自体がそもそも難しいか。 : [sage] 2018/02/15(木) 21:40:37.57:wm9Pntzw jsのサブセットともいえるasm.jsからwasmならできる むしろ一番最初にwasm出てきた時やってたのがそれだろ : [sage] 2018/02/15(木) 21:49:32.52:soH0s4OR そりゃasm.jsじゃなくてAssemblyScriptのことだろ。 : [sage] 2018/02/15(木) 21:57:55.53:Z5nyO2py wasmでできることのサンプルでいいのないですか : [sage] 2018/02/15(木) 22:26:17.03:LVCrmyEJ AssemblyScriptが中で使ってるBinaryenがasm.js→wasmサポートしてるじゃん そいつってTS→asm.jsしてBinaryen呼び出してるだけだったりしてね? 俺が44で書いたのは元々wasmがasm.jsベースで実装始まったって見た気がしたからでそんなライブラリとは関係ないけど : [sage] 2018/02/15(木) 22:56:54.50:soH0s4OR あぁ、サブセットってところに引っかかっただけだ。 話を戻すと、RPythonに対するPyPyみたいなものがあればいいんだがなぁ。 : [sage] 2018/02/16(金) 07:32:01.09:9ipJLmm1 wasm調べてたらrustってのに行き着いたのだけど rustっていいの? : [sage] 2018/02/16(金) 07:38:32.94:WQE4iPFk うんにゃ : [sage] 2018/02/16(金) 07:48:59.59:N1s5Hdgd websocketをやらねば!! ↓ node.js!! ↓ なんか使いづらい、ぐっさくね? ↓ java!! ↓ もう老人 ↓ wasm!!からの~ ↓ なに? : [sage] 2018/02/19(月) 10:37:50.14:TKHdwdGa .Net : [sage] 2018/02/19(月) 20:06:38.18:S3U39YpB ナイスジョークw : [sage] 2018/02/19(月) 20:23:50.11:lRCoRBcw なんでnodeはwebsocket使いにくいの? 煽りじゃなく、ほんとなら個人的に対策立てたいので。 : [sage] 2018/02/19(月) 20:45:16.99:pKIDPIGb NodeでWebSocket使おうと思ってるところなんだけど, どのライブラリを使うのがいいか分からん 統計だけ見ればwsかな? Nodeとブラウザで同じコードで動くようにするにはisomorphic-ws使えばいいのかな? 使ってる人おせーて : [sage] 2018/02/20(火) 07:23:49.73:GgzKQl9s ぐっさいからWebAssemblyができたんでしょ 答え出てるやん : [] 2018/02/20(火) 15:51:09.84:8AxQ9YzH ワイ「firebase 」 : [] 2018/02/21(水) 19:31:38.94:O384HGBH nodeでAPI作ったらテストツールはfrisbyしかないの? : [] 2018/02/22(木) 20:46:37.90:c2upgmLY sqlite3で、serialize関数の中に書くのと直に書くのの違いは何ですか? : [sage] 2018/02/22(木) 20:55:18.66:4xFkIfES 質問の仕方とAPIリファレンスを調べる方法を学んでくれ ttp://jump.5ch.net/?https://github.com/mapbox/node-sqlite3/wiki/Control-Flow : [] 2018/02/22(木) 21:40:09.49:c2upgmLY データベース読み取り完了後に処理するには直に並べて書いてもいいのでしょうか : [] 2018/02/22(木) 21:45:11.82:c2upgmLY コールバックの引数からしか結果を取得できないので無理でした : [] 2018/02/22(木) 21:53:52.78:c2upgmLY db.run(...)でクエリを実行 ↓ DBとは無関係の普通のjsの式を実行 serializeの中にこの2行を書いたらクエリの実行が完了してから2行目が実行されるのでしょか。 : [sage] 2018/02/27(火) 21:30:09.82:lFj/dPwY サーバーサイドとクライアントで共通に使うモジュールでlog4jsを使いたいんですが、サーバー側は npmのlog4js-node、クライアント側はオリジナルのlog4jsを使うようなことってできないでしょうか。 それぞれwebpackでバンドルしてますのでwebpack.configで差し替えるような方法でもよいです。 : [] 2018/02/28(水) 17:29:15.91:F8/eMdWm できますよ : [sage] 2018/02/28(水) 17:32:46.76:nrJj4j7P yes/noクエスチョンして撃沈するやつ大杉www : [sage] 2018/03/17(土) 01:02:44.52:rslrcUh9 FreeBSDで $node -e "console.log('Hello world');" を入力すると illegal instruction (core dumped) と表示されるます 解決方法を教えてください ちなみにgdbコマンドでcoreファイルを調べても #0 0x086bed17 in ?? () と表示されますが詳細が分かりません osはi386-marcel-freebsdです : [sage] 2018/03/17(土) 03:03:42.72:T/uji2Bj back trace確認した? バグか環境の問題だろうから新しい環境とか 違うバージョンのnodeやosで試して切り分けするといいかもね あとコアダンプ見るのはllnode使うと捗る ttp://jump.5ch.net/?https://github.com/nodejs/llnode : [sage] 2018/03/17(土) 05:25:55.91:rslrcUh9 backtraceでは#0~3が全部in ⁇ ()としか表示されません またnpmもコアダンプするのでllnodeはインストールできませんでした nodeのバージョンは最新の9.3.0の他に8.9.3、6.12.2、4.8.7を試したのですが全てコアダンプしました インストーラーにはpkgを使いました : [sage] 2018/03/17(土) 13:29:27.27:T/uji2Bj おおーそんなことってあるのか FreeBSDの環境構築含めて最小限の再現手順を添えてIssueに上げたら? ちなみに今のバージョンって8.10.0と9.8.0だよ : [sage] 2018/03/28(水) 22:23:21.10:Ik/iQCHb Node.jsを使ってwindowsでmp3を再生するにはどうすればいいのでしょうか? とりあえずググって出てきたplay-soundというのとplayerというのを使ってみたのですが 何故かうまくいきません play-soundは外部プレイヤーを呼び出してるだけっぽいですし : [sage] 2018/03/29(木) 01:33:12.81:DnMaJisN simplayerってのが気になってたから代わりに試して報告レスを書く権利をやろう : [sage] 2018/03/29(木) 10:13:09.28:fj69X1D3 ありがとうございます それも見たのですが、コマンドを呼び出してるだけですよね アプリを入れなくてもいいのはいいのですが、 windowsではwavしか再生できないというのが困ります まぁwindowsがイケてないのですが・・ : [] 2018/03/29(木) 12:32:32.82:90vctbdp 鯖側だけで音が鳴ってても困る : [sage] 2018/03/29(木) 12:33:22.32:fj69X1D3 Electronのメインプロセスでサウンドが鳴らせないことが問題だったのですが 非表示のレンダラプロセスを起動しておいてそこで鳴らせばいいと気づきました mp3を鳴らすモジュールもElectronを使うようにすれば実現できるでしょうね メモリ使用量的に富豪的ですが : [sage] 2018/03/29(木) 20:14:37.76:0KWZ/AkQ Pixi.js ベースのゲームエンジン、Phaser とか使わないとできないのかも : [sage] 2018/03/31(土) 16:03:54.94:Sn+gu03Z CommonJSのやつをESモジュールに書き換える際に依存モジュールってどうしてる? ブラウザ用にバンドル出力すると.mjsじゃなくなっちゃうし : [] 2018/04/03(火) 18:21:34.47:DyW1PQoq axiosでdatファイルやsubjectファイルを取得するソフトを作っているのですが、文字化けしてしまいます。 jconvやiconv-liteなどのパッケージを使ったり、環境もDigitalOceanのドロップレットを使ったり ローカルのWindows10で動かしたり色々しているのですが、どうしても文字化けが治りません。 どなたか、ご教示いただけませんでしょうか。 : [sage] 2018/04/04(水) 02:04:22.96:dci/EUEW dat ファイルって、5ch の? HTML に、文字コードを付けていないのだろ。 どうせ、CP932 だろ 強制変換すれば? : [] 2018/04/04(水) 02:30:53.74:h2UR4/YM ほんそれ : [] 2018/04/04(水) 02:37:45.24:RW7X0/F+ ご回答ありがとうございます。 axiosで取得した時にSHIFT_JISのコードをaxiosが勝手にutf-8扱いしてデコードしていたために おかしくなっていただけでした。 : [] 2018/04/04(水) 02:52:05.21:h2UR4/YM >axiosが勝手にutf-8扱いしてデコード そうか? 鯖がUA観て送信塩湖変えてる可能性は? : [sage] 2018/04/04(水) 02:55:41.91:dci/EUEW スクレイピングなら、Ruby で、Selenium WebDriver, Mechanize の方が簡単 JavaScript, Node は、面倒くさい。 まだ、Electron の方がマシ : [sage] 2018/04/04(水) 09:11:36.38:jx2XXyxV electronてnodeじゃんwwwww : [sage] 2018/04/04(水) 14:38:08.10:dci/EUEW 参考までに。 Ruby で、Selenium WebDriver で、Chrome のHeadless mode で、 5ch をスクレイピングしたら、文字化けもせずに、テキストが取得できた ブラウザが、CP932 を自動的に、UTF-8 に変換しているのかな? driver.navigate.to "ttps://mao.5ch.net/test/read.cgi/linux/1479499953/8-9" element = driver.find_element(:css, 'div[data-id="8"] > div.message > span') puts "内容 :#{element.text}" : [sage] 2018/04/04(水) 14:45:50.99:YO5zcEko 以前ならnodeでスクレイプはjsdomとjqueryが定番だったイメージ 最近は知らんけど : [sage] 2018/04/04(水) 15:49:11.75:jx2XXyxV 最近はヘッドレスChrome使う。(puppeteerなどのラッパーを使って) seleniumと比べて挟むレイヤーが少なくて同じ以上の事ができる。 他のブラウザでやんなきゃならないときはSeleniumだね。セットアップが非常にめんどくさいけど。 : [] 2018/04/04(水) 16:43:05.55:s/NBnuXV Windows環境でもpuppeteerのヘッドレスChrome動くようになった? : [sage] 2018/04/04(水) 17:14:10.26:jx2XXyxV MBPだから分からん。 : [sage] 2018/04/04(水) 17:22:12.84:hx9HkNum MBPでもWindowsは動くから分からない理由にならん : [sage] 2018/04/04(水) 18:31:27.93:JZ99J8cJ macOSだからわからん : [] 2018/04/05(木) 17:30:27.50:PWNYpPzv MBPだから(いちいちwindows環境用意するのは面倒、従って)分からん : [sage] 2018/04/05(木) 18:15:24.72:rXLddpo5 MBPだから面倒とはよく分からんな AT互換機やVMと大してWindowsセットアップの手間は変わらんのに : [sage] 2018/04/05(木) 18:38:12.24:xSbyKHuy それ面倒って言ってるのと同じ : [sage] 2018/04/15(日) 11:55:39.33:GDtrufJB Node.jsではグローバル変数はglobalの属性にすると知りました jsファイルにグローバル変数のように書いてる変数はグローバル変数ではなかったのでしょうか? : [sage] 2018/04/15(日) 12:03:17.21:GDtrufJB エントリーポイントのjsファイルも、 実際にはモジュールのように独自の名前空間に閉じ込められていたということなのでしょうか : [sage] 2018/04/15(日) 12:30:34.93:ZEcSoj1Y グローバル変数がグローバルオブジェクトのプロパティだというのはNode固有の話ではない。 ブラウザだとwindow、Nodeだとglobalでそのグローバルオブジェクトにアクセスできるというだけ。 仮に閉じ込められているとしても、その「外」が無ければどっちと捉えても同じ。 : [] 2018/05/23(水) 19:55:38.17:Au5e7VGg 僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方 役に立つかもしれません グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』 AY2FW : [sage] 2018/05/24(木) 11:04:01.98:cPlRxlDn AY2FW : [] 2018/06/06(水) 12:49:05.94:1yp8yW1B fs.createReadStream()のstart, endの値ってuintの範囲に制限されてるっぽくて困った : [] 2018/06/06(水) 12:59:17.94:1yp8yW1B GitHub見たら10.3.0で修正されてると見て試したら問題なかった 良かった : [] 2018/06/11(月) 03:02:37.71:+ZXvp0cd スレタイに入ってるNashornオワタ/(^o^)\ JavaでJavaScriptを実行する「Nashorn」が非推奨に、ECMAScriptの速い進化に追いつけないと。代替案はGraalVM ttp://jump.5ch.net/?https://www.publickey1.jp/m/blog/18/javajavascriptnashornecmascriptgraalvm.html : [sage] 2018/06/11(月) 11:03:40.44:NM/bnQBs 使ってるやついるか? 正直どうでもいいな。 : [sage] 2018/06/11(月) 19:57:45.35:sBJsXOBY それよりはzip slipの方が余程大事じゃねえの : [sage] 2018/06/11(月) 21:14:19.40:e0vR8q3f なにそれ? : [sage] 2018/06/11(月) 21:16:36.65:TtmKEAmt 毎度毎度の脆弱性 : [sage] 2018/06/12(火) 06:50:18.57:OD105wYY 標準のZIP展開は並列処理されず遅いので皆自分で書いたりして試したことがあると思うが パスをそのまま信用しちゃまずいことあるだろうなってことは99.99%の作者が気づく それをケアしていないのはバグではなく、素朴な実装を目指しただけ つまり問題と責任は利用者側にある 実際のファイルへの書き込みはライブラリ外の場合も多いだろうし 特に標準が用意されていない環境でそういったライブラリを選ぶときは きちんと知識を持った上で中身を確認して利用しろというだけのことでしかない : [sage] 2018/06/14(木) 15:13:23.32:9vBjb8Eh GAEの無料枠で動くようになったけど今となっては遊び場にも微妙だな : [sage] 2018/06/14(木) 15:46:30.74:Zu1EvjtC GAEこそ真のPaaS そんなふうに考えていた時期が俺にもありました : [sage] 2018/06/14(木) 20:12:54.74:1UAOBXCc 何が駄目なの?具体的に。 : [] 2018/06/15(金) 09:26:26.58:xbpv1wwF ほんそれ : [sage] 2018/06/16(土) 13:10:06.73:q1gUWLEE 俺はだめだとは思わないけどdatastore周りとかじゃないかな。 : [sage] 2018/06/17(日) 00:11:11.59:WQHP2n97 nodistをインストールしたら、node7.2.1がインストールされました このバージョンはどのような基準で決まるのでしょうか? : [sage] 2018/06/17(日) 00:17:30.58:WQHP2n97 最新のLTSは8.9.0のようです それが入るなら分かりますが・・ : [] 2018/07/04(水) 22:18:23.52:gFgZc5FG PMV : [sage] 2018/07/05(木) 16:37:50.98:AeL6VB/V PMV : [sage] 2018/07/11(水) 00:45:10.51:UCabWAAs npmjsずいぶん見やすくなったな : [sage] 2018/07/14(土) 22:13:07.98:sptiC22u npmってのはnode.jsでサーバサイドアプリケーションを開発する人専用のツールではなく、 Javaで書かれたプログラムを実行するのにJavaVMが必要なように 何か使いたいアプリケーションがnode.jsで書かれていて、 それをインストールするために必要なものという認識でよいのでしょうか? なんかちょっと使いたいものを調べるとなんでもnpmが出てくるのですが、 別にnode.jsで何かサーバサイドアプリケーションを作りたいわけではないので、 なんでいちいちnode.js導入しないといけないのだろうと思ってたのですが。 : [sage] 2018/07/14(土) 22:52:48.33:ikbDgWAP NodeJSはJavaScriptの処理系のひとつでブラウザを除けば最も広く使われている NPMはパッケージマネージャ そもそもNPMのCLIツールがJavaScriptで書かれていてNode上で動かすことが前提 NPMで導入可能なパッケージは必ずしもNodeを必要としないがNode上で動かすことを前提としたものも多い 例えばブラウザ向け開発でもWebpackとかでブラウザ用JSを生成するわけだがWebpack自体はNode上で動作する : [sage] 2018/07/14(土) 23:02:36.93:6hOxkvv1 npmはjavaでいうmavenみたいなもん : [sage] 2018/07/14(土) 23:21:53.17:sptiC22u なるほど、どうもありがとうございます。 VMとかたとえが悪くてすみませんでした。 rpmとかでLinuxにアプリケーションをインストールするイメージで、 node.jsはOSに相当するプラットフォームのようにとらえていました。 あくまでも、その言語向けのアプリケーションを開発するために必要な、 ライブラリを管理するためのマネージャーなんですね。 : [sage] 2018/07/15(日) 00:11:20.46:tzV6EtXj みんなこういう例え話好きだが使ってみたほうが早いと思うぞ。 正直osで例えるのはまじで何が言いたいのかわからない : [] 2018/07/15(日) 11:52:48.40:PPKweFFg nodeコマンドはjsインタプリタ。 nodeで動くjsモジュールが公式、非公式に色々提供されている。多彩なモジュールによりコマンドラインツールやwebサービス、ブラウザアプリ、デスクトップアプリまで開発できる。 パッケージマネージャはnpm。 nodeのモジュールのインストールと、スクリプトの実行機能をもっている。 スクリプト実行はnodeコマンドだけでもできるが大量のモジュールを使うアプリでは依存関係や実行タスク切替が必要になる。そこまで管理できるのがnpm。 npmではまだ機能不足だと感じる人たちはさらにwebpackのようなツールを使う。 web界隈ではcoffeescriptやtypescriptなどのaltjsのjsへの変換が日常的におこなわれる。こういったトランスパイラもnpmでインストールして実行できる。 またトランスパイラはaltjsの変換以外にも毎年アップデートされるjs(es)のパージョン間の違いや、ブラウザ環境とサーバー環境の違いを吸収したり、jsx,vuexなどのDSLの変換等も行うが、それらもnpmで導入出来るようになっている。 : [sage] 2018/07/15(日) 11:58:16.04:3AmTzi+H coffeescriptは滅んだよ。今altjsで生存確認取れるのはtypescriptだけ。 : [] 2018/07/15(日) 15:56:04.95:noPBsGa8 たとえ話に意味があるとは思えないが python: python - pypi python: python - conda (anaconda) ruby: ruby - gem perl: perl - CPAN node.js: javascript - npm linux: python - yum linux: perl - rpm : [] 2018/07/15(日) 16:07:22.97:jsMvl+lU プロジェクト毎に3万ファイルとか50MB以上とかダウンロードしてくるけどこんなもん? SSDが死にそう : [sage] 2018/07/15(日) 16:29:40.23:IE1rNzTR > SSDが死にそう 安心しろ。この程度でSSDが死ぬことはない SSDの書き込み回数は1万回ぐらいと言われているが、それはセルごとだ。 1セルのサイズは多くても4ビットだ。もっとも1セル単位で 書き込むわけではなくブロック単位で書き込む。 ブロックサイズは製品にって違うが2KBとしよう 50MB = 50000KB、3万ファイルだから1ファイル1.6KB。 ざっくり大目に見てブロックサイズと同じで2KBとしよう。 つまり1ファイルで1ブロック書き込みをするということだ ということは1プロジェクトのファイル数が3万とか50MBあったとしても 結局は1万回書き込みができるブロック毎に1回しか書き込みしないということだよ さらに128GBのSSDであれば、128 * 1024 * 1024 = 134217728KB これをブロックサイズで割ると67108864ブロックあることがわかる。 それぞれのブロックごとに1万回書き込みができるのだから 全ブロックで671088640000(約67千億回)が総書き込み可能回数となる SSDはうまくブロックごとの書き込み数を平均化してくれるので 3万ファイル = 3万回の書き込み なので 22369621(約2千万)プロジェクトの ダウンロードが可能ということだよ(1ファイル1ブロック書き込む前提) : [] 2018/07/18(水) 01:10:24.04:ZhFIl0gF 将来プログラマーになりたい高校生です 去年どうやったらプログラム上手くなりますか?と5chで聞ききました。 とにかく何か作れ!と教えてもらいました。そして作りました。 レベルが低くて恥ずかしいのですが、JSで壁にブツカッてしまいました。 こちらのWEBなのですが、 ttp://jump.5ch.net/?http://www.pafumo.com/ 地域を絞り込んで検索をしたら出来るのですが、 選択肢の中身がもとに戻ってしまうのです。 そしてサーバーサイドJSだったら、こういう問題も解決できるかもしれない。 と思いまして、今、導入を考えているのですが、 私のレベルは低すぎて、よく分からなくて、ココの皆さんに教えていただきたくて、 書き込みました。 レベルが低すぎてスイマセンが、なにかアドバイスを頂けませんか? 私は、サーバーサイドJSをやったほうが良いのでしょうか? : [sage] 2018/07/18(水) 02:29:18.27:Xrgq5rZT これまじでつくったん? 高校生でこのレベルだったら日本じゃ食いっぱぐれないから自信持っていいよwすごい 将来有望! phpやったことないけど、「php 入力値 保持」とかでググって解決できるかも? : [sage] 2018/07/18(水) 10:24:27.37:9lJLz1c7 甘えさせんな : [sage] 2018/07/18(水) 10:33:56.80:9lJLz1c7 別にサーバーサイドJavaScriptだろうがphpだろうが大差ない 好きな言語を使えばいいし、言語による問題など無いに等しい 言語の壁なんてずっと先の話の話だ 現時点では自分自身の壁の方がずっと近くにある あとなどうせ現時点では大したデータ入ってないだろうけど そのコードおそらく脆弱性があるからな。 <input type="radio" name="gakureki" value="AND `学歴_int` IN(2,3)">高校 <input type="radio" name="gakureki" value="AND `学歴_int` IN(2,3,4)">専門 こんな感じでSQLの一部(らしきもの)をサーバーにそのまま投げてはいけない。 この部分は、サイト利用者が自由に書き換えられるから、SQLインジェクションという脆弱性になる その結果サーバーの全てのデータの流出や削除が起こる可能性がある 仕事ではありえないレベル : [] 2018/07/18(水) 11:47:33.49:4ilUbnPJ hiddenタグとかに埋め込むとかformでpostした内容を読み取ってvalueを書き替えるじゃん? PHPをやったら簡単かも、htmlspecialcharsとか使えるし->その先はスレ違いで。 : [sage] 2018/07/18(水) 12:09:46.83:jJw1m5s0 「たのしいRuby 第5版、2016」を、3回読んで、 無料のRails チュートリアルをやればよい Rails をやれば、どのフレームワークにも応用できる PHP は、Rubyよりも難しいから、素人レベルでは避ける方が無難。 数言語を学んでからの方が良い : [sage] 2018/07/18(水) 13:01:01.59:0VQDXwHE node勧めろよw : [sage] 2018/07/18(水) 13:08:12.74:jJw1m5s0 フレームワークの基礎は、Rails。 無料のRails チュートリアルをやった後に、以下の掌田津耶乃の本を読む Node.js超入門、2017 Python Django 超入門、2018 Spring Framework 4 プログラミング入門、2014 Spring Boot プログラミング入門、2016 : [] 2018/07/18(水) 13:18:01.82:nZmqMr15 rubyは組み込みメソッドの仕様が恣意的で見た通りに動いてるとは限らない。 逐次確認が必要だが昔からドキュメント書きたくないでござるの人たちばっかりのコミュニティなのでrubyソース読む羽目になる(教祖もそうすべきと言っている) Pythonが(書きにくく)読みやすいと言われるのに対しRubyが(好き勝手に書きやすく)読みにくいと言われるのはそのため。 また、似た機能を実現するためのメソッドがたくさんあり、まったく動作が同じ単なるエイリアスだったり、微妙に動作が違っていたりする。これも調べないと分からない。 構文レベルでも同様の混乱を引き起こしており、行き当たりばったりの機能追加が言語全体の一貫性を著しく損ねている状態。 例)ttp://jump.5ch.net/?https://qiita.com/jnchito/items/83410c0cda446efea582 なのでPythonに完敗して滅んだ。 動物の細胞内に共生して生き長らえているミトコンドリアのように、現在はRailsの内蔵バッテリーとしてのみ生存が確認されている。 : [sage] 2018/07/18(水) 15:19:54.93:OB31EeM/ クライアントに状態を保存したいなら、 WebStorage で事足りるかと思います サーバに進んでもいいけど WebExtension でブラウザ拡張にするって手もありですかね : [sage] 2018/07/18(水) 18:55:58.06:HvbxYtHk ttp://mevius.5ch.net/test/read.cgi/hp/1529144063/ マルチのキチガイ相手にすんな : [sage] 2018/07/18(水) 19:59:05.56:GJ20wEra Node.jsに興味がある者です(使ったことはありません) Node.jsって非同期処理らしいけど、コールバック地獄になったりしないのでしょうか? 見通しの良いプログラム書けますか? どんな用途に向いていますか?例えば企業のHP? 掲示板? ゲーム? ド素人ですみませんが、教えてください。 : [sage] 2018/07/18(水) 20:01:30.57:vkID/FCq firebaseとかをやると多少サーバサイド周りが楽になる。おすすめ : [sage] 2018/07/18(水) 21:48:09.86:lX9iw+l5 NodeというかJavaScriptの文化が非同期中心 コールバック地獄に対してはそれを解消するために色々な機能の導入が進んでる * ジェネレータ/yield * promise * async/await : [sage] 2018/07/18(水) 21:49:04.83:Ptw15SBf そのWebExtensionはSafari、特にMobile Safariで 使えるようになるのでしょうか? : [sage] 2018/07/18(水) 22:23:27.09:xtLcDzcX 最初からasync/awaitできるようにライブラリを再設計してもらいたいね : [sage] 2018/07/19(木) 06:39:55.91:7J8bSQkS それよりもasync awaitは、forEachとか関数を引数に取るようなメソッドを使うと いつの間にかasyncの世界が解除されてしまうのツライ。そのせいでバグってるの何度かみた。lintツールで監視してほしいんだがないかなー? : [sage] 2018/07/19(木) 07:08:25.59:/uEaO2eB どんなコードでトラブってんの : [sage] 2018/07/19(木) 07:14:17.52:Gj4aV2Pa それは勝手にasyncにされたら困るでしょ : [sage] 2018/07/19(木) 07:19:59.43:k4hdpfM8 try catchが、機能しなくなったりとか。 await 入れ忘れてるとpromiseになっちゃうから : [sage] 2018/07/19(木) 07:20:45.38:k4hdpfM8 だからlintで対応したいと言ってる。 : [sage] 2018/07/19(木) 07:29:46.78:/uEaO2eB lintでやることじゃない TypeScriptで型チェックすればいいんじゃね : [sage] 2018/07/19(木) 08:31:24.37:6uxn/aT1 つまり型推論を使わずに受け側の型を確定しろってこと?めんどくせえよ。 lintでasync function 内のスコープで関数を引数に取るような関数呼び出しがあったら警告する。くらいで良い : [sage] 2018/07/19(木) 10:22:17.98:jn3CABTs サンプルコードとexpected/actual見ないと何とも言えんな : [sage] 2018/07/19(木) 21:14:29.49:r+W9F2HQ TypeScriptなら推論してくれるだろ?どこが面倒くさいと言っているんだろうか。 : [] 2018/07/21(土) 06:27:45.75:ElqtIK48 128ですー! お兄様達!ありがとうございました。 今回は色々反省点も多かったですが、自分の未熟さが又見えてきました。 本当にありがとうございました 今回はセキュリティを少し修正して一度つくりなおします まずは・・・また空っぽのWEBサイトに戻りましたwww : [sage] 2018/07/21(土) 11:26:07.15:qX0Dt9ZM これより簡単な最新版インストール方法ないん?@ubuntu16.04 sudo apt-get install npm sudo npm install -g n sudo n latest sudo npm install -g npm@latest : [sage] 2018/07/21(土) 11:57:42.82:O8QI/iof nのnvmやnodebrewに対する利点欠点教えてくれ。移行の検討したい : [sage] 2018/08/11(土) 11:58:28.68:3BcXSGzx これ値上がりしてるけどもしかしてもう絶版なの? 実践Node.js プログラミング ttp://jump.5ch.net/?https://www.amazon.co.jp/dp/479812947X/ : [] 2018/08/11(土) 12:04:26.76:AWnFhpjF 売ってあげてもいいよ : [sage] 2018/08/11(土) 12:13:48.16:/QURPuCG では中古ですのでKindle版より安くお願いします。 裁断は不可です。 : [sage] 2018/08/11(土) 13:05:24.81:3BcXSGzx いやまぁ、もう持ってるんだけどね なんかAmazon見てたらオススメ欄に明らかにこんな値段じゃなかった気がする価格で出てたから なんか原書のIN ACTIONが改版してるみたいだね : [sage] 2018/08/11(土) 23:46:03.56:DgZEeL87 基礎から学ぶ Vue.js、mio、2018/5/29 Vue の本が出た : [] 2018/08/12(日) 12:34:21.45:rtSL/abo いらね : [] 2018/08/17(金) 22:04:36.04:4NJ8UK9X JavaScriptってウンコだな 並列処理ができるサーバーサイドでnode.jsよりマシな言語って何かある? : [sage] 2018/08/17(金) 22:05:22.28:+k3F0uGS C# : [sage] 2018/08/17(金) 22:14:36.92:4NJ8UK9X Visual Studioとかもっとウンコくさい : [sage] 2018/08/17(金) 22:30:35.38:+k3F0uGS C#と言ったんだが… Visual Studioでも駄目ならもうこの業界から去った方がいいよ : [sage] 2018/08/17(金) 22:44:08.63:ktJvAt38 永久にJava使っとけばいいんじゃないかな : [] 2018/08/19(日) 02:55:54.88:fvMiJicq こんばんわです ちょうど一ヶ月前に色々教えていただきました あの時はありがとうございました あれからずっとWEBサイトを作りました WEBサイトと宿題以外何もやってません ttp://jump.5ch.net/?http://www.pafumo.com/ その時に色々注意されたんですが とにかく教えていただいたスレッド?にはまた書き込ませてもらいました ワタシとしては頑張ったほうだと思うのですが 完全に生活リズムが崩れて体調も崩したり泣いたり色々ありましたが とにかくコチラの皆さんに見ていただきたかったのです とにかく1ヶ月は寝る間も惜しんでやりました どうでしょうか?動きとかどうでしょうか? : [] 2018/08/19(日) 12:43:00.38:plhuPGbS 大学行く気はないの? : [] 2018/08/19(日) 12:47:16.62:guZgI/xk そらはーは高校行くのやめてたんか 今何歳だろ ttp://jump.5ch.net/?https://www.facebook.com/notes/urabe-shyouhei/俺はもうそらはーに大学行けとか言わないことにした/409479182515899/ ttp://jump.5ch.net/?https://twitter.com/sora_h ttp://jump.5ch.net/?https://togetter.com/li/396341 ttp://jump.5ch.net/?http://gihyo.jp/lifestyle/serial/01/shukatsu_joshi/0001 ttp://jump.5ch.net/?https://twitter.com/5chan_nel (5ch newer account) : [] 2018/08/20(月) 19:18:07.67:cZE9+/lx 褒めてほしいなら褒めてやろうか? 『高校生にしちゃ良くできてるわ笑』 体調?泣いた?甲子園じゃないんだから感動しねぇわ node.js使いこなしてから書き込めや もうすぐ夏休み終わりだぞ? 宿題おわらなくても先生に涙見せればok?ってか : [] 2018/08/20(月) 20:55:48.45:bV0bfDA8 余裕のねえおっさんだなw : [sage] 2018/08/21(火) 02:56:39.15:wR4pFdwQ こんな大人ばっかりだから 間違えても職業プログラマにはなるなよ そのまま趣味レベルで大学卒業する迄頑張って何かを作り続けてみ 巷のプログラマのレベルの低さを理解できるようになるから プログラマになったらそいつらの下で仕事するのが馬鹿らしくなるよ : [] 2018/08/22(水) 13:43:02.55:ucL1rxd7 こんにちはとです。 ありがとうございます。 前回の僕が作ったWEBが駄目すぎて色々注意をいただきましたね。 でも今回はダメ出しがなかったので、 そこそこ通用したのかな?と思っておきます。 : [sage] 2018/08/22(水) 14:08:53.29:Opme7aq9 突っ込むのが面倒だからだと思う なるべく色々な人に見せた方がいいよ 5chの住人はめんどくさがりが多そうだから(多分) : [sage] 2018/08/22(水) 14:32:48.78:xEhqeRfD ツッコむのが面倒以前に おそらくサイトも見てないと思う : [sage] 2018/08/22(水) 15:09:56.93:Chs+lHYf それな : [] 2018/08/22(水) 20:04:15.95:uhR98H94 node.jsのサーバがちょっとした負荷で無応答になって それっきり復帰できないので対応策を教えてください。 例えば「user/index」というURLに対してDBなどのソート処理などを クライアントから連打してリクエストを何回か送ると、 そのうち無応答になります。 タイムアウト処理をしてタイムアウト時に強制的に res.redirect()とかres.end()すればよいと思ったのですが、 一度無応答になると以降「uder/index」にリクエストしても全て 無応答になってしまいます。 (厳密には「GET」などのリクエストは受け取っている表示が出たあと 全くログが出ません。) サーバ全体はダウンしていなくて「user/add」へのリクエストは 正常に動くので「user/index」だけが無応答になっている状態です。 この無応答状態を解除する方法を教えてください。 処理中のアクションの関数まだ継続中なら、強制終了したいのですが その方法がわかりません。 最悪、タイムアウト時にサーバを再起動したいのですが、 外部からでなくnodejs自体で内部から再起動することはできるのでしょうか? よろしくおねがいします。 フレームワークはexpressを使っています。 また、node.jsのパフォーマンスや可用性対策で参考になるサイトが有りましたら 教えていただけると大変助かります。 : [sage] 2018/08/22(水) 20:32:56.12:mHU9sjBy 今日も暑いからな : [sage] 2018/08/22(水) 23:22:50.18:0YvB5ppq 実践Node.js プログラミングの原著の第二版出てるみたいだけどなんか全然内容違うみたいだね ttp://jump.5ch.net/?https://www.manning.com/books/node-js-in-action-second-edition : [sage] 2018/08/23(木) 01:10:59.57:qUZ5eK5Q >DBなどのソート処理 DB の更新処理に時間が掛かって、表がロックされているとか? DBのタイムオーバーを設定できないの? Node.js が受け付ける、同時接続数とかも 5ch のサーバーなんて、しょっちゅうアクセス不能を戻す : [sage] 2018/08/23(木) 05:04:48.63:kxLVtsMJ こういうときは再現可能なシンプルなコードを書いて晒すのが一番かと : [sage] 2018/08/23(木) 05:27:17.11:NPcuqlt3 user/indexって単なるselectじゃないの? それを繰り返してロックするなんてことあるのかね? select for update呼んでるとか? : [sage] 2018/08/23(木) 06:49:10.72:UQ+YkEmz Webサイト制作初心者用質問スレ part249 ttp://mevius.5ch.net/test/read.cgi/hp/1529144063/436 マルチポストばれないとでも思ったのか スキルと並行してマナーも学ばなきゃプロにはなれないぞ : [sage] 2018/08/23(木) 06:53:02.35:4Ni+ZJQh マルチポストがいけない理由って何ですか? : [sage] 2018/08/23(木) 06:55:42.64:NPcuqlt3 自分でググることも覚えよう ttp://jump.5ch.net/?https://ja.m.wikipedia.org/wiki/マルチポスト : [sage] 2018/08/23(木) 07:06:13.29:4Ni+ZJQh もちろんググりましたよ おおむねどこもウィキペディアに書かれている理由がほとんどのようですが パソコン通信やダイヤルアップ接続時代ならともかく現代では無意味です 知識の集積とか気分とか善意とかの理由も2chのようなコミュニティでは無意味でしょう ちょっとは自分で考えることも覚えましょう : [sage] 2018/08/23(木) 07:16:05.08:NPcuqlt3 だめだこりゃ : [sage] 2018/08/23(木) 07:18:50.45:4Ni+ZJQh なにがだめなんでしょうか? : [sage] 2018/08/23(木) 07:21:10.99:NPcuqlt3 プライドだけは高そうw : [sage] 2018/08/23(木) 07:27:43.86:4Ni+ZJQh 私は具体的な根拠をあげて意見を述べたつもりです それをあなたは見下したような態度をとっただけで具体的な反論もない プライドだけは高そうですね : [sage] 2018/08/23(木) 07:45:01.41:p0u00SDp まぁコウモリ野郎は嫌われるって事だよ : [sage] 2018/08/23(木) 07:56:53.07:4Ni+ZJQh コウモリ野郎っていうのは、こっちでは向こうの悪口、向こうではこっちの悪口言う奴ですよね いろんなところで質問するマルチポストとは違うような気がするんですが : [sage] 2018/08/23(木) 08:03:10.28:7f2db5Zi マルチポストの是非については納得いかないかもしれないが (そして今は俺もそこには触れないが) マルチポストしたら実際どうなるかは今実感してるはずだろ せっかく年齢の割に優秀とか言ってもらえてたのにこの数分でこの有様だ その向上心と行動力をこんな事で殺さないでくれよ勿体ない : [sage] 2018/08/23(木) 08:08:54.33:NPcuqlt3 これだけは言っておこう 俺の若い頃にそっくりだw : [sage] 2018/08/23(木) 08:10:33.15:NPcuqlt3 どうだ 怖いだろ? : [sage] 2018/08/23(木) 08:11:49.22:p0u00SDp 意識高い系にはNode.jsよりもRuby onRailsの方が向いてると思うよ : [sage] 2018/08/23(木) 08:16:59.96:NPcuqlt3 Ruby on railsなんて一番チームワークが必要だ。 オワコンJava servletで十分。 そしてなるべく家から出るな。 : [sage] 2018/08/23(木) 08:19:16.32:4Ni+ZJQh 実際どうなるか今実感しているのは、全く論理的でない筋違いなレスがもらえるということです マルチポストの話題というのはひょっとしたらタブーになっているのでしょうか あなたのマルチポスト以外の発言もまた意味不明です いえ、何が怖いのかよくわかりません 何言ってるのかさっぱりわかりません : [sage] 2018/08/23(木) 08:22:19.27:NPcuqlt3 プライド捨てられないやつは一人でやった方がいいよ。 周りに迷惑かけるだけだから。 : [sage] 2018/08/23(木) 09:06:27.88:5URB78uz 典型的なアスペだな : [sage] 2018/08/23(木) 09:13:10.29:SHqa2C3g 叩ける材料見つかってよかったなw : [] 2018/08/23(木) 12:21:10.84:4+C+OXJA マルチポスト高校生に束になってもかなわない自称プログラマー達www 有能な若者に嫉妬なんかしてないで自分たちの心配した方がいいんじゃないの?www : [sage] 2018/08/23(木) 12:30:20.77:NPcuqlt3 これ本人だとしたら相当病んでるな : [sage] 2018/08/23(木) 12:50:55.09:kZnXG8MX おれはマルチポスト君は変なこと言ってないと思うぞ。物言いはムカつくがw お前の方が相当病んでるぞ : [sage] 2018/08/23(木) 12:55:20.68:NPcuqlt3 こりゃ完全な病気だな : [] 2018/08/23(木) 13:00:07.47:4+C+OXJA 高校生にボコられて発狂中www : [sage] 2018/08/23(木) 13:08:24.14:NPcuqlt3 はいはい。良かったねw : [] 2018/08/23(木) 13:12:44.35:29gBK1aD レベルが同じすぎて草 : [sage] 2018/08/23(木) 13:17:21.85:NPcuqlt3 ID変えるほど落ちぶれてはいないがな : [] 2018/08/23(木) 15:11:58.49:zcVFY2eP マルチポストの件でスゴイ荒れてますけど、 僕の書き込みは、173が最後なので、その後の口論みたいなのは僕じゃないです。 ちなマルチポストが駄目って事は1ヶ月前に2chで教えてもらいました だからもうマルチポストをするつもりはないです 2つのスレッドで報告したのは2つのスレッドで色々教えてもらったからです。 でも途中から見た人にはマルチポストに見えたかも知れません すいませんでした : [sage] 2018/08/23(木) 16:20:21.86:SHqa2C3g よしジジイども、何が何でも叩け ジジイのプライド見せてやれ : [] 2018/08/23(木) 16:29:22.48:+UveuQfQ 荒れるから酉つけろ : [sage] 2018/08/23(木) 17:38:20.56:NMWQFTIr ってかDBの方で設定してる最大のコネクションとコアは何本と何個なの? そっちが問題だろ。 問題のクエリを何端末か開いて叩いてみればいいじゃないか。 別のメソッドは返事してくれてるんだから、nodeで何かする問題でもなかろう。 : [sage] 2018/08/23(木) 19:32:08.14:4Ni+ZJQh マルチポストがなぜ駄目かの質問書き込みは私です あらぬ疑いをかけられた様で申し訳ないです マルチポストが駄目と言われたそうですが、もし理由があったなら教えてもらえないでしょうか : [sage] 2018/08/23(木) 19:39:58.78:S737Skjm Wikipediaの理由ひとつひとつに論理的に反論してみ : [sage] 2018/08/23(木) 20:05:35.05:4Ni+ZJQh : [] 2018/08/23(木) 20:43:16.58:n9wdMl+k 実行するSQLをログで履いて、それを コピーして手動でDBでSQL実行すると 意図通り4件のレコードが取得できるのに、 nodejsで同じSQLを実行するとresultオブジェクトの 行数が0件なのは非同期処理関係ありますか? 因みにresultオブジェクトは正しく取得できて いてDBのテーブル名やカラム名情報は 取得できているから接続には問題がない。 一応、結果として返されてはいるのに、 何故か手動の時と結果の内容が違う。 : [sage] 2018/08/23(木) 21:33:44.64:AuVZlFM/ ひとつひとつに論理的に反論してみ : [sage] 2018/08/23(木) 21:36:08.48:NMWQFTIr 件数が異なるのに、なんで「resultオブジェクトは正しく取得出来てる」と思えるの? 正しくないじゃん。 nodeでクエリ投げるユーザと、手動で実行するユーザは同じなの? そのDBやテーブルでSELECTをGRANTしてないとかそういう話ではないと切り分けしてる? : [sage] 2018/08/23(木) 21:45:16.98:6IqyOKm1 この手の輩は再現する最小コードを絶対に書かない : [] 2018/08/23(木) 22:48:43.81:wvgL9Tt8 1.回答が複数のコミュニティーに分散してしまい、知識の集積という1コミュニティーの目的にそぐわない。 2.ネット資源(サーバーや回線の能力)とて無限ではない。同じ内容の記事をばら撒くのは資源の無駄遣いといえる。 3.その問題に関心のある人は類似した複数のコミュニティーに参加して新規投稿をチェックしていることが多いが、あちこちの同じ投稿に対してそれが本当に目新しい内容かを峻別しなければならなくなる。 4.他のコミュニティーで付けられた回答を知らずに同内容の回答を付けてしまったり、他のコミュニティーですでに解決したことを知らずに検討を続けたり、善意の回答者の労力が無駄になる。 5.この場所だけでは質問が解決するか不安であるという不信感を表明することと、結果としては同じである。 : [sage] 2018/08/23(木) 22:52:21.73:SHqa2C3g ウィキペディアの内容をコピペするのはマナー違反にならないの? : [sage] 2018/08/23(木) 23:14:12.19:yAx95x6B マルチポストごときで何を必死になってんだかねえ : [sage] 2018/08/23(木) 23:17:06.11:qUZ5eK5Q プログラミングと言うよりも、環境構築だろ。 LinuC・データベーススペシャリストなどの資格もいるし、数年以上掛かる DB なんて、WEB+DB とか、ミックの本を読んだり、何年も勉強する 掌田津耶乃の本 Node.js超入門、2017 Python Django 超入門、2018 ましてや、Node, Django の本などは、ここ1, 2年の話。 一方、Rails なんて何十冊も出てるだろ Node, Django ができる奴は、英語もできて、自分で問題を解決できる人だけ。 最低でも数言語できて、資格も持っていて、数年以上勉強している人だけ そもそも簡単な言語の順番は、Ruby, Python, JavaScript の順番。 初心者は、無料のRails チュートリアルで、環境構築もみっちり勉強すべき : [sage] 2018/08/23(木) 23:34:47.51:p0u00SDp Node.js超入門は読んだけどこれ読んだだけだとNode.jsを使うアドバンテージなんて得られないと思う 素直にPHPかRubyでも使ってた方がいいんじゃないかってレベル ちゃんと使おうと思うなら実践Node.jsプログラミングくらいを読んだ方がいいと思う : [sage] 2018/08/23(木) 23:51:23.31:AuVZlFM/ .NET Coreが最近快適すぎて : [sage] 2018/08/23(木) 23:51:55.65:GEXgWULo 2ちゃんねるがこんなに高尚なコミュニティーだとは知らなかった : [sage] 2018/08/23(木) 23:58:21.87:x1LmQtTu MSの環境に慣れたらもう戻れない : [] 2018/08/23(木) 23:59:41.31:E5h4CmTu 何日くらい回答なかったらマルチポストしていいんだろうかって悩むことはある : [sage] 2018/08/24(金) 00:17:51.60:+eNrM5zE そんなもんでいちいち悩まずマルチすりゃあいいんだよ。 ここは罵詈雑言、煽り上等、虚実混交の2ちゃんねるだ。 難癖付けられたら華麗にスル~ : [sage] 2018/08/24(金) 01:25:32.83:ZgK6e0Tb 結局、掌田津耶乃の「Node.js超入門」「Python Django 超入門」を読んでも、触り程度。 本格的な勉強は、Python, JavaScript で、悪戦苦闘していじくりまわすしかない それならRuby で、Sinatra をいじくりまわす方が簡単。 難しい言語のフレームワークをいじくりまわすのは、時間を損する : [sage] 2018/08/24(金) 08:00:14.19:q0UJEScu マルチしても良いけど、全部で言い方変えるのと、 全部の回収するのは徹底してほしい。 : [] 2018/08/24(金) 13:05:33.08:ZVlysGry 掌田 ω Rails ω : [sage] 2018/08/24(金) 14:45:41.42:ZgK6e0Tb 世界中で、すべての主要言語のフレームワーク・ゲームエンジンの本を書いたのは、掌田だけ! : [sage] 2018/08/24(金) 21:21:20.94:FSpmxK6R 昔ニフティーフォーラム会議室ってあったよなあ マルチポスト探し出して投稿者を糾弾することを生きがいにしてたような奴がいたなあ : [sage] 2018/08/24(金) 23:42:17.90:Y6g05Ur0 Nashorn生まれてすぐ脂肪www 憐れwwwww : [sage] 2018/08/25(土) 12:44:20.44:00w/RGH3 resultをコールバックの中で取得してるよね? コンセント刺さってる?レベルの質問で申し訳ないが : [sage] 2018/08/25(土) 13:24:10.85:FL+uDwnj Japはケチでロクなもんじゃないな 意地悪で陰険 : [sage] 2018/08/25(土) 13:25:10.28:00w/RGH3 急だな : [sage] 2018/08/29(水) 19:58:20.44:tqG09mle babel-upgradeで楽できるかと思いきやstage-*の中身を個別に書き足さなきゃ行けなくてしんどい : [sage] 2018/08/30(木) 21:03:45.27:1rD3/Svv Chromeの低速時JavaScript無効化はブラウザ側jsだよな node.jsへ誘導する為の動き : [sage] 2018/08/31(金) 02:58:42.50:rrTM/UB7 マルチ乙 : [sage] 2018/08/31(金) 05:29:56.60:J05bSyHo サーバーサイドの意味を全く理解してないなこのマルチ : [sage] 2018/08/31(金) 06:34:19.56:ohwMH4+4 さすがに釣りだろう : [] 2018/09/09(日) 01:50:35.75:0bXk8YdS 無名関数の req, res, に続く3番目の「next」ってなんなんですか? 「next()」を実行すると、次の処理が行われるって言うけど 「次の処理」が何なのかわからないかからよくわかりません。 nextで次に何が呼ばれるか確かめる方法ってありますか? あとexpressには routesとviewのフォルダしか無いけど、 モデルクラスの定義ってどうやるの? クラスを定義してオブジェクト指向をやろうとすると、 メンバ変数への値の格納や参照に「this」を使うけど、 JavaScriptの「this」って無名関数のなかだと違う意味になるし、 非同期処理だかthisに格納した値を生成したインスタンスから取り出そうと 思っても格納されていない。 無名関数内でメンバ変数に格納するという作業が後回しになって、 インスタンスからメンバにアクセスして値を取得するコードが 先に実行されてるからだと思う。 Promiseとか使ったけどこのメンバ変数への格納だけはうまく行かなかった。 というのはインスタンスのnewが関数実行じゃないから、 コンストラクタは返り値としてオブジェクトをreturnするわけじゃないだろ? 通常の関数のreturnが非同期でうまくいかない問題はPromiseで 解決できたけど、インスタンスのnewを非同期で成功させる方法がわからない。 node jsで無名関数を使わない処理なんてほぼ無いと言っていいから、 このままだとインスタンスを生成してクラスに処理を委託することができない。 : [sage] 2018/09/09(日) 02:07:58.37:ytcgsCFj ドキュメント嫁 : [sage] 2018/09/09(日) 02:14:44.05:rd2vglUK 今北産業 : [sage] 2018/09/09(日) 09:50:06.93:4j2Kj4Fd reqに入れれば次のミドルウエアなりなんなりで読めるっしょ。 : [] 2018/09/09(日) 11:22:54.87:kzlGF2pO メソッドチェーン : [sage] 2018/09/09(日) 17:30:53.56:0ym3cmgA JavaScript のthis は、文脈依存だからバグる。 jQuery, Haxe では、this を変えてる だから事前に、this を取っておく。 変数 = this フレームワークは最初に、無料のRails チュートリアルをやった方が、わかりやすい Node.js超入門、掌田津耶乃、2017 : [sage] 2018/09/09(日) 17:57:43.82:4SlBIw2j var that=this 先輩がよく書くこれが何の事か理解するのに半年かかった。 : [sage] 2018/09/09(日) 21:09:26.80:4j2Kj4Fd またRails語の布教してるの? 次世代言語スレで叩かれて学習しただろう? : [sage] 2018/09/09(日) 22:13:11.20:XVLphpcz クラスのコンストラクタでasync await使えるようになってほしい : [] 2018/09/10(月) 11:08:22.30:wQh8RVrU x Rails語の布教 〇 掌田津耶乃の宣伝 : [sage] 2018/09/10(月) 18:56:16.28:xy7pEog1 本人定期 : [] 2018/09/11(火) 13:46:36.75:pwo3DQbp 布留川英一の本っていいの? : [sage] 2018/09/11(火) 17:13:33.45:je6kVHqj ここに関係ある本なんて出してた人だっけ? : [] 2018/11/09(金) 12:24:29.99:fHYOMbmE Promiseの再帰について質問です やりたいことは、フォルダの中を再帰的に掘って見つけたファイルを配列に入れて返す、です フォルダの深さやファイル数は不確定です 1フォルダの中身をループでひとつずつ見ていって ファイル・フォルダか判定し ファイルなら返す配列に入れる フォルダなら再帰 返った配列を、返す配列にconcat とする再帰関数を作れば良いと考えたのですが この再帰関数自体と、ファイル・フォルダ判定が非同期なので、全部堀り終わったかわかりません そこでループの中身をまるっとPromiseにして、仮配列に貯めておき 最後にPromise.allで実行する、としているのですが、なんか回りくどい気がします 考え方は正しいでしょうか? ttp://jump.5ch.net/?https://jsbin.com/rocebihipo/edit?js : [] 2018/11/09(金) 12:25:11.79:fHYOMbmE スレ違いだったらすんません : [sage] 2018/11/09(金) 12:41:54.63:gpiLPqbS statSync : [sage] 2018/11/09(金) 14:55:23.41:9TLjX86J あるいは再帰関数内でasync-await使えばいいんじゃない どっちによ最初の関数が終了するかpromiseがresolveすればそれが完走判定になる 素直にnpmから同じことをやるモジュール拾って使ったほうがいいと思うけど : [] 2018/11/09(金) 15:04:40.93:fHYOMbmE あざます 同期ならふつうの再帰関数になるので 数が少ないうちはそれでも良いかなと考えてます なるほどー : [sage] 2018/11/09(金) 23:15:09.16:11OK0uj5 files = [ ] Dir.glob( 'C:/Users/Owner/Documents/**/*.txt' ) do | full_path | next if File.directory? full_path # ファイルだけを処理する files.push full_path end puts files Ruby なんて、これだけ。 glob に、** で再帰する。glob star ただし、. で始まる、directory, file を除く : [sage] 2018/11/10(土) 00:00:53.51:jxhvzDRc rubyをすべてのスレで非表示推奨 : [] 2018/11/10(土) 13:44:39.63:KutuN/gN 同意せざるを得ない : [sage] 2018/11/10(土) 22:54:16.36:uI2sCS6p find ./ -name "*.txt" find なんて、これだけ。 : [sage] 2018/11/20(火) 11:26:56.53:uxKeWy0p ウインドーズ環境でnode.jsでcon.拡張子 みたいなファイル作ったら消せなくなるな。 いろいろ調べてやってみたが全部のほうほうで消せなかった。 消せなくなる勇気があればやってみてほしい。 : [] 2018/11/20(火) 12:46:58.78:ZfASh1x8 管理者でコマンドプロンプト開いて rd /s "\\?\フォルダ名" : [] 2018/11/28(水) 21:53:23.10:ndifwdFb visual studio 2017ってnode.jsは自分でダウンロードして インストールする必要があるの? : [sage] 2018/11/28(水) 23:24:27.79:C4pMtE3c もち : [sage] 2018/11/28(水) 23:42:01.46:LGvbReX9 vs17?vscodeじゃなくて? : [sage] 2018/11/29(木) 00:45:45.96:eqpLvbYV VS2017でもnode.js開発できるよ : [sage] 2018/11/29(木) 01:11:01.78:rs9fzmaE 日本語通じてない感やばない? VS2017はインストール時にNodeを一緒にインストールするか選べる : [] 2018/12/02(日) 18:17:04.36:r/YV3Hmh 農奴はオワコン : [sage] 2018/12/02(日) 19:49:58.35:hHHhmr7T 好きなの使え ttp://jump.5ch.net/?https://www.npmjs.com/package/walker ttp://jump.5ch.net/?https://www.npmjs.com/package/walkdir ttp://jump.5ch.net/?https://www.npmjs.com/package/walk ttp://jump.5ch.net/?https://www.npmjs.com/package/fs-walk : [sage] 2018/12/21(金) 09:51:27.26:/0a+/ZiL グローバル空間に、ネームスペースを付けずに、パッケージに 含まれる関数全部を一度に分割代入を使わずにリクワイヤーするにはどうやりますか? : [sage] 2018/12/21(金) 11:10:58.92:9Mj5/4cf require('hoge.js'); : [sage] 2018/12/21(金) 11:30:16.23:jEzMm4KB Object.assign(global, require('hoge.js')) : [sage] 2018/12/21(金) 15:27:30.27:/0a+/ZiL ありがとうございます。 リファレンスエラーになってできませんでした。 : [sage] 2018/12/23(日) 00:53:23.01:RKXbiRtg 2018年になってようやくnpmを理解できた : [sage] 2018/12/23(日) 04:40:19.41:4FLJEAfZ 今年中にわかってよかったな : [] 2018/12/23(日) 12:40:19.38:1CMGQ+zK npmはオワコン : [sage] 2018/12/25(火) 22:12:21.78:a1VV5QoF 未だに--saveが必要なくなったことに気がついてない人がいる : [sage] 2018/12/26(水) 01:01:54.88:o7c2/aOT マジかよ…知らなかった… : [sage] 2018/12/26(水) 23:32:12.78:0rGTuPiX ホントだ 知らなかったwww : [sage] 2018/12/27(木) 15:48:56.03:5w9WbE4d あの変更はかえって--no-saveする手間が増えて不便だわ : [sage] 2018/12/27(木) 15:52:03.62:kq41KEy5 cliとしてはyarnの方が使いやすい : [sage] 2018/12/27(木) 16:20:54.35:dG7CRozn どうしてそう思うのか書いてもらえないと参考にならない。 海外のブログ読んでると、真っ先にyarn移ったような人たちが最近続々とnpmに戻ってきていて、俺にはなぜyarnに移ったのか、そしてなぜnpmに戻ってきたのかサッパリ分からない。 : [sage] 2018/12/27(木) 16:31:34.16:9Wczl2GP 今さら分からない人は分かりたいとも思ってないだろうからどうでもいんじゃね? npmに戻る人がいるのはnpmがyarnのいいところをどんどん取り入れたからだろう まともなロックファイル、パフォーマンス、コマンドラインの改善(npx含む)はyarnの後追い npm独自なのはセキュリティ周りか : [sage] 2018/12/27(木) 18:00:55.29:2IMw5f1U 良くも悪くも、標準だからだと思うけど。 俺も標準だから戻ったよ。 : [sage] 2018/12/27(木) 18:13:43.11:00PdR8uN 標準の地位に胡座をかいてシュリンクラップ糞のまま放置してたからyarnに寝首をかかれた なんでも独占はよくない切磋琢磨が必要 : [sage] 2018/12/27(木) 19:09:40.30:cQueOXAg ラズパイでなんかやろうとしたときに全然うまくいかなくて試しにyarnにしたらうまくいった事はあった : [sage] 2018/12/27(木) 19:18:59.81:dG7CRozn npmのとこ行っちゃいyarn… : [sage] 2019/01/16(水) 02:20:59.42:r494tM7s ほとんどAPI同じだけどstatsじゃなくてdirent実装したのは何でなん? : [sage] 2019/01/21(月) 00:35:01.04:DKQzzj98 yarnはパッケージマネージャー界のCoffeeScript : [sage] 2019/01/21(月) 12:31:54.36:yPBr5z/L それはない : [sage] 2019/02/27(水) 08:08:28.87:OYLvU+sF node.jsに将来性はあるかなぁ? : [sage] 2019/02/27(水) 09:26:32.31:gzx7LPiY 個人的な感覚だけど組込み関連でもっと伸びるんじゃないかと思う 最近シリアル通信のプログラムよく書いてるよ : [sage] 2019/02/27(水) 09:53:02.76:haTnnqie あの遅いpythonですら許容されてるもんな。 : [] 2019/04/02(火) 19:47:41.43:2j6V1crX 非同期処理できなくて泣きそう : [sage] 2019/04/02(火) 21:28:46.28:3dIjgbOm node.js は、Ruby on Rails でも必須 Babel, Webpack で、ES2015 を、ES5 へ変換する。 Coffee Script, Type Script は不要 初めてのJavaScript 第3版 ――ES2015以降の最新ウェブ開発、オライリー、2017 Rails プログラマーも、この本を読むのが必須! : [sage] 2019/04/02(火) 21:53:33.10:bvgXxWzo jsはフロントエンドで排他的な地位を築いてるわけだがwasmで変わるかどうか : [sage] 2019/04/03(水) 06:46:18.73:JogZOakl つうかwasmっていつ始まるんだよ : [sage] 2019/04/03(水) 08:54:18.63:6aon8UUL もう始まってるよ! : [] 2019/05/18(土) 01:39:55.47:NUmvom/y class使うと冗長的でイヤだな~ JAVAの人以外に使う人いるのか? PHPもclass文化が入ってきてから長ったらしくて見にくくなった : [] 2019/05/18(土) 23:10:19.77:V1bm/mN0 入れ物どうするの? : [sage] 2019/05/18(土) 23:47:25.37:6fmwe7rg 昔はReactはclass必須だったけど最近はconstしか使わなくなったな : [sage] 2019/05/20(月) 13:57:02.12:315y2LTs え? : [sage] 2019/05/25(土) 10:36:45.88:P9kv6fd4 ttp://jump.5ch.net/?https://electronjs.org/releases/stable electron のバージョンを確認すると.6.4.1と出るんですが、最新と違います なにか間違っているでしょうか npm electron -v こうやってます : [sage] 2019/05/25(土) 11:18:04.02:lK+K49ID それじゃnpmのバージョンが表示されてるだけ npm outdated electronとか npm list electron : [sage] 2019/05/26(日) 07:33:35.43:BNx/1Kr/ 仕事じゃなければclass使う機会ないんじゃないの? もともと第一級言語だし。 JAVAはいちいち面倒なことしてるなって思う。 : [sage] 2019/05/26(日) 13:33:28.57:/3XSSWvk 去年までのreactではライフサイクル扱うのに必須だったからそれなりにclass使ってた 今はhooksで不要になったけど vuejsでclass使わないのはvuejsのclassサポートの出来が悪いから webcomponentsではclass使う : [sage] 2019/05/26(日) 13:34:42.45:/3XSSWvk おっとwebcomponentsではssrしてないからスレチか : [sage] 2019/05/28(火) 18:26:28.76:u9qp/pn3 Readable.from便利だな : [sage] 2019/08/15(木) 14:14:57.93:jracdouM ちょっと実装の依存関係について質問。 deps配下って、 依存モジュール構築時、node.jsそれ自体に依存しているけど、どうやってビルドしているの? ttp://jump.5ch.net/?https://github.com/nodejs/node : [sage] 2019/08/15(木) 16:24:58.54:tw8yrSxj 依存してるか? 置いてあるだけでは? : [sage] 2019/09/07(土) 13:12:16.63:7O56BTDL dockerでwindowsとalpineの間で共有フォルダを作り、windows上のvscodeで作業しています。 作業ファイル(React)をvscodeを通してdocker内でnpm startしローカルホストを立てそれをwindowsのchromeでアクセスしています。 そのとき、ファイルを変更しては保存をしての繰り返しで挙動を逐一チェックしたいのですが、 修正した.jsファイルを更新してもブラウザ上では内容が更新されません。 一度ctrl c を押して停止させてから、再度npm startをして接続すると、ブラウザでも修正内容が更新されます。 ブラウザのキャッシュ削除や、検証モードでdisable cacheにチェックを入れていても同じでした。 dockerを使わないwindowsだけでの作業をしていた時は、ブラウザの更新マークを押すだけで修正内容が反映されていました。 現在、自動でキャッシュを削除してくれるるnodemonを入れて作業しているのですが、 こちらも結局は、ファイルを上書き保存した時点で自動でnpm startを繰り返してくれるだけなので どうしても時間がかかってしまいます。 上書き保存をし、ブラウザを更新しただけで修正内容が反映される様にするにはどうすればいいでしょうか? : [sage] 2019/09/07(土) 13:39:38.96:FOx1f63/ nodemonってことはwebpackは起動してない? hot module replacement(HMR)使うならdockerの中だろうとwebpack通さないと あとHMRちゃんと設定できてればブラウザのリロードしなくてもファイル保存しただけで変更が反映されるよ つか画面周りの開発でdocker使っていいことあるか? : [sage] 2019/10/19(土) 18:31:46.54:VwkXsBh7 初心者ですがWindowsでnode.jsを使いたいのですが 一人で開発する分にはnvm-windowsとnode.jsとvscodeぐらいを入れとけばやれますか? 作ったアプリを配布する際にパッケージの依存関係を何かに表さなければならないと思うのですが、どう抽出して何に記述しますか? あとBrowserifyって額面どおりのことを本当にやれるんですか? (たとえばローカルファイルにアクセスしたりソケット通信するようなJavaScriptコードについて : [sage] 2019/10/19(土) 20:52:32.38:yv9dYCWj ガチの初心者かい 的外れなこと聞くよりnpmとかyarnのチュートリアル探してやった方が意味があるぞ : [] 2019/10/20(日) 10:50:05.69:Xl2t0ZNf ツールを検討するレベルにもまだ達していないな : [sage] 2019/10/20(日) 12:17:01.14:ADDbXmaX Node.js, VSCode, Babel, Webpack。 他には、VSCode の拡張機能とか、yarn, gulp タスクランナーは、gulp, npm scripts PC 内のファイルにアクセスするなら、Electron とか。 VSCode も、Electron 製 : [] 2019/10/20(日) 12:19:52.71:FREy/Z7W なるほどPC内のファイルにアクセスするためのツールなんですね、Electronって。 : [sage] 2019/10/20(日) 12:49:58.20:TAO9/plN ファイルにアクセスするだけならnode.js単体でもできる electronはブラウザとnode.jsを統合したものでHTMLベースのGUIを持ちつつファイルやネットワークを自在に扱える つまりデスクトップアプリのプラットフォーム : [] 2019/10/20(日) 13:14:43.74:Df2Q09El えっ、でもが… : [sage] 2019/10/20(日) 13:36:05.62:nEJBA+Mj こんなとこ鵜呑みにしないで自分で調べろ : [sage] 2019/10/20(日) 23:37:18.68:ADDbXmaX Electron は、サーバー側・GUI の両方を、1つにまとめたもの! V8 は、JavaScript の実行環境 サーバー側は、Node.js + V8。 GUI はブラウザで、Chromium + V8 おおー! V8 が重複しているから、これを1つにしたら効率的! つまり、Electron = Node.js + Chromium + V8 だから、Electron アプリは、300MB もあるw : [sage] 2019/10/21(月) 00:49:40.00:cifrZUYa 知らないならそんな無理してレスしなくてもいいやろ : [] 2019/10/21(月) 02:36:24.31:W7vxtZcq なんでみたいなウソつくの?ねぇ!? : [sage] 2019/10/25(金) 02:49:42.38:rOQwe8UN この変な改行は見覚えあるな いつもWeb板の質問スレでめちゃくちゃなレスしてるやつかな : [sage] 2019/10/25(金) 21:10:41.94:R3+rebPF 違うよ。Rubyガイジっていう、ム板で一番嫌われているキチガイ。 : [sage] 2019/10/25(金) 21:21:14.20:gI2SKdMr そいつweb板にも来てるよ : [] 2019/10/25(金) 23:35:33.90:9ZGj0mXw 糖質の見本みたいなやつ。医学発展のために献体すべき。 : [] 2019/10/26(土) 10:05:13.04:e6NVGnmw 糖合質調症 脳が糖で溶ける : [] 2019/11/03(日) 20:01:18.21:v1wfX+lc Nodeって、なんでこんなに広がったんだろうな? たかだかjs如きが : [sage] 2019/11/03(日) 20:16:57.32:lIMPkprv jsだからじゃね : [sage] 2019/11/03(日) 23:25:52.66:ungx1UoX たかがJSと蔑まれる要因だった高過ぎる自由度が、ベストプラクティスの集積のお陰ですべてプラスに転化してしまったんだ : [sage] 2019/11/04(月) 00:16:03.94:U87Emrnv 古くはunixやcもたかがだしpcもwindowsもたかがだし たかがtcp/ip、たかがjava、たかがlinux、そんなばっかだぞ : [sage] 2019/11/04(月) 02:10:19.67:PlunRwPx 詰まったので質問させてください WSH(JScript)で書いたスクリプト[run.js]からnode.js[test.js]を実行して結果を標準出力で受け取って表示させると日本語が文字化けします 文字化けしないように受け取るにはどうすればいいか教えてください [run.js](WSH)test.jsを実行して標準出力で結果を受け取る var WShell = WScript.CreateObject("WScript.Shell"); a = WShell.Exec("\"C:\\Program Files\\nodejs\\node.exe\" C:\\script\\test.js").StdOut.ReadAll(); WScript.echo(a);//結果の日本語文字化け WScript.Quit(0); [test.js](node.js)コマンドプロンプトのdirの結果 var childProcess = require("child_process"); var iconv = require("iconv-lite"); var buffer = childProcess.execSync("dir", { timeout: 60 * 1000, // タイムアウト1分 }); console.log(iconv.decode(buffer, "Shift_JIS")); : [sage] 2019/11/04(月) 02:25:09.17:ku/TWmjC 少なくともブラウザ上で実質唯一の選択肢だったのがブラウザ以外で実用的になったわけだし, 広がる道理としては十分だと思うけどな : [sage] 2019/11/04(月) 08:35:20.63:SxA1gV4C サーバーサイドでnode使ってる人いる? : [sage] 2019/11/04(月) 08:42:56.84:cptTSbgU chcp 65001 は実行済み? : [sage] 2019/11/04(月) 10:32:03.99:PlunRwPx ありがとうございます! CodePageを65001にしても変わらずrun.js実行で文字化けの結果が返ってきます・・・ : [sage] 2019/11/04(月) 10:33:10.71:PlunRwPx あ、CodePageじゃなくてchcpです。レジストリからいじってやりました・・・ : [sage] 2019/11/04(月) 11:20:17.56:kKuYGgew process.stdout.write(buffer); : [sage] 2019/11/04(月) 11:40:31.03:PlunRwPx ありがとうございました!最後の行を置き換えたら文字化けせずに表示されました ずっとハマってたのでちゃんとできて泣きそう聞いてよかった : [sage] 2019/11/04(月) 13:20:30.25:Zu03xGz4 クリップボード内の複数行文字列の、各行の先頭・末尾から、 連続する空白類を除去して、クリップボードに入れる CreateObject("WScript.Shell").Run "powershell ""gcb | % trim | scb""", 0 WScript.Shell の、Run, Exec は、絶対パスじゃなくても、node みたいなコマンド名で書けるだろ? 例えば上なら、powershell というコマンド名 コマンドプロンプトで、where node と入力すると、パスが通っているだろ? C:\Program Files\nodejs\node.exe : [sage] 2019/11/04(月) 13:20:30.45:Zu03xGz4 クリップボード内の複数行文字列の、各行の先頭・末尾から、 連続する空白類を除去して、クリップボードに入れる CreateObject("WScript.Shell").Run "powershell ""gcb | % trim | scb""", 0 WScript.Shell の、Run, Exec は、絶対パスじゃなくても、node みたいなコマンド名で書けるだろ? 例えば上なら、powershell というコマンド名 コマンドプロンプトで、where node と入力すると、パスが通っているだろ? C:\Program Files\nodejs\node.exe : [sage] 2019/11/04(月) 20:17:02.81:PlunRwPx はい、絶対パスはnodeに短縮できました : [sage] 2019/11/10(日) 15:12:00.68:xm1aPYIT そのやり取り見てふと探してみたけどNodeから扱えるクリップボード監視APIorモジュールってないんだな 単なるコピペなら見つかったけど : [sage] 2019/11/12(火) 13:33:25.22:7YZfdUQ7 node.jsでローカルのクリップボード操作ってどうしてる? java使ったりFlash使ったりは見つかるけどいまいち : [] 2019/11/12(火) 13:39:01.64:VHJGIodx ttp://jump.5ch.net/?https://github.com/sindresorhus/clipboardy : [sage] 2019/11/12(火) 15:21:55.81:7YZfdUQ7 ありがとう これ超簡単だ : [sage] 2019/11/23(土) 04:55:17.89:gxeBmcpY npm startをしたところ Something is already running on port 3000. Probably: Would you like to run the app on another port instead? と表示されNoを選択したところローカルで立ち上がりませんでした。 (先にport3000を閉じたくてNoを選んだのですが) 既にport3000が立ち上がっているのが原因かと思うのですが port3000のローカルを閉じるにはどうすればいいのでしょうか? 通常ですとctrl cで閉じれると思うのですが、 気づいたらそのフォルダごと消えていて、でもport3000は更新しても立ち上がったままになっていまして。 フォルダの方は練習用だったので消えても良いのですが 今後のためにport3000を閉じるコマンドを教えて頂けないでしょうか : [] 2019/11/23(土) 09:32:04.13:cBKKqL2b netstat -a -n | grep 3000 : [sage] 2019/12/02(月) 22:16:23.66:fbMjr17B こういったコマンドがあったのですね・・・ 関連コマンドも調べてみて勉強になりました ありがとうございます! : [] 2019/12/03(火) 09:38:40.12:yN5r9ueQ ここサーバーサイドのスレだよな : [sage] 2019/12/16(月) 00:05:17.66:OYZOPSrf prompt系モジュールでtimeout実装したのって無いの? 探したけどinguirerがプラグインで追加できるくらいしか見つからなかった : [sage] 2019/12/16(月) 00:19:44.26:+KWK+mzK Promise.race()でタイマーと組み合わせればいい : [sage] 2019/12/16(月) 21:41:20.26:j7231URK 全く初心者です。 Node.js と nuxt.jsってどうちがうの? : [sage] 2019/12/16(月) 21:52:48.22:vHo7jlv+ nuxtはnodeの上で動く : [] 2019/12/17(火) 22:36:05.58:SHyLrbNS なるほど : [sage] 2019/12/18(水) 11:46:32.95:j3JURanB Node.js は、Electron, Ruby on Rails でも使う、すべてのweb 系の基礎。 絶対に、インストールして使うもの パッケージマネージャーのnpm/yarn も使う。 Webpack, Babel なども Nuxt.js は、Vue.js をより効果的に使うためのライブラリ JavaScript のサーバー側は、Node.js で、 クライアント側は、jQuery, Vue.js, React など : [] 2019/12/18(水) 11:58:33.63:kJrLdJZA 初めてwebpackでサンプルをビルドした新参ですが、node moduleからbrowser.jsっていうのが組み込まれているようです これって何をするものなんでしょうか? : [] 2019/12/18(水) 11:59:14.85:RQBBPl9v さすが農奴 はんぱねぇわ : [sage] 2019/12/18(水) 14:06:17.43:j3JURanB browser.js は、babelで変換せずに、ES6で書いたJSを、ブラウザで実行する Not intended for serious use Compiling in the browser has a fairly limited use case... まあ、実験用 詳しくは「browser.js」で検索して! : [] 2019/12/18(水) 16:43:15.09:kXCOuU9J 有り難うございます ES6で書かなければ必要ないものが組み込まれちゃうって事なんでしょうか? 自分のコードが大丈夫でも使用したmoduleがES6の可能性あるとかなのかな とりあえず気にしない事にします : [sage] 2019/12/18(水) 22:32:50.86:j3JURanB VSCode では、普通にES6 でも動くから、気にした事がない それが他人のプロジェクトなら、その設定ファイルに書いてあるのだろう : [] 2019/12/21(土) 13:23:45.97:gaERTb6x サーバにphpとDBおいてフロントサイドをjsで運用しているんですが web-dev-serverでこういった環境をローカルに作る事って可能でしょうか? それともnode.jsを使う以上サーバサイドもjsにしてしまうべきなんでしょうか? : [sage] 2019/12/21(土) 13:29:18.33:tKqa0Mcd PHPのbuilt-inのweb server使え : [] 2019/12/21(土) 13:58:12.68:gaERTb6x 有り難うございます 今までxammpっていうのを使っていたのでそれに流せばいいのでしょうか? ちょっと試してみます : [sage] 2019/12/21(土) 14:16:41.22:tKqa0Mcd 流す? projectのrootディレクトリで $ php -S localhost:8080 ってやれば ttp://jump.5ch.net/?http://localhost:8080/foobar.php でアクセス可能 : [sage] 2019/12/21(土) 15:31:45.26:BSqycIZI Ruby なら、PowerShell から、1-liner で、 Rubyで作られた遅いウェブサーバー、WEBrick が起動する ruby -run -e httpd . -p 8080 そのフォルダに、index.html があれば、 何も考えなくても、これでブラウザからアクセスできる ttp://jump.5ch.net/?http://localhost:8080 これで遊んだ後は、Routing, O/R マッパーなどを備えた、Sinatra, Rails などのフレームワークを使う。 Rails のコピーが、CakePHP, Spring Boot : [] 2019/12/21(土) 15:43:47.89:DXb4EnUP 最終的な構成で、考えれば? フロントエンドをサーバーサイドと一緒に配布する(ただの静的ファイル扱い)だけなら、同じサーバでいいけど、 そうでないなら、フロントエンド側も初めから別のサーバにしておく方がいい(CORS対応は必須)。 : [] 2019/12/21(土) 15:52:38.28:5ArYAWFR お前、アムロの父ちゃんみたいだなw : [sage] 2019/12/21(土) 16:08:05.96:CcLWlaTM dev-serverだから開発用途のでしょ たぶんwebpack-dev-serverだろうけどそれならhot module replacementとか使えるからサーバが何だろうと開発時は使うべき サーバがnode以外の時はproxyの形で使える : [] 2019/12/23(月) 13:15:15.27:lCv+3OMn 有り難うございます proxyの概念自体がよく解ってないんですが、そういう仲立ち的な使い方も出来るという事ですね ちょっとnpmだけでも覚える事が多すぎるのでゆっくり慣れていく所存です… : [sage] 2019/12/23(月) 22:45:35.05:nv2HpLa5 Node.js のnpm, yarn, PHP のComposer とか、Ruby のBundler のコピーだろ。 別に、覚えることなんてない global/local のインストールの区別と、本番用/開発用の区別だけ。 それと、設定ファイル : [sage] 2019/12/23(月) 23:46:27.75:blTffQrc たぶんnpmレジストリで公開されてるパッケージ群の総称としてnpmと言ってんじゃね : [] 2019/12/24(火) 14:05:27.32:IBUEMR4t npmのパッケージ全部覚えるとか Cの野良ライブラリ覚えるのとか githubのレポジトリ全部覚えるのとか 苦行以外の何物でもない : [] 2020/02/15(土) 11:48:59.21:rOuGo3aV node.jsはjavaにおけるjvmみたいなもの? electronを使ったデスクトップアプリは今後普及するでしょうか? : [] 2020/02/15(土) 15:14:42.82:C3ilCL7T 実行環境という意味ではそっすね : [sage] 2020/02/15(土) 17:28:25.44:rOuGo3aV web開発で培った技術がパソコン・携帯端末でもさらに活かせるようになったら嬉しい。 : [sage] 2020/02/16(日) 07:11:26.16:5EL9p8ON VSCode は、Electron 製 マルチプラットフォームは、 React Native + Expo アシアルのMonaca(Cordova/PhoneGap) + Onsen UI Mono を使っている、Unity, Xamarin やっぱり漏れは、サーバー側は、Node.js よりも、Ruby を使うけど : [sage] 2020/02/16(日) 08:37:01.80:GfLcoptO Ruby使うセンスはわからんな。 今どきRailsとか? あんなの使うぐらいならPHPで素組したほうが早いし安全だと思うわ。 : [sage] 2020/02/16(日) 12:47:35.71:iNVxJNOu >あんなの使うぐらいならPHPで素組したほうが早いし安全だと思うわ。 流石にそれはないww : [sage] 2020/02/16(日) 13:36:59.19:WhOeRDRv Railsがそれぐらいあり得ない悪手だよ、今どき。 : [] 2020/02/18(火) 01:59:27.59:1aZdIiHX 案件の数的にはphp, laravelってのが多いな。 PHPも7以降はプリミティブにもタイプヒンティング使えるからそれを積極的に使うとrailsより良かったりする。 : [] 2020/02/18(火) 05:16:07.44:KGU+DtHT うつ病君 青木 一泰 : [sage] 2020/02/18(火) 09:42:41.11:0PsFYxUX PHPはフレームワーク使わずに、きちんとバリデーションして信頼境界線を意識して使うと、すごく便利よ。 歯を磨くには歯ブラシだなって思う。 : [] 2020/02/18(火) 21:16:40.68:enVFBik2 Ruby は、JIT で速いから、web サイトの最高速度は未だに、Rails。 世界を驚嘆させた、dev.to もそう 表示速度が“異常な”Webサイト「dev.to」とか ttp://jump.5ch.net/?https://dev.to/ 元乃木坂46 の川後陽菜のWebサイト、SKIYAKI とか ttp://jump.5ch.net/?https://kawagopro.com/ でも、PHP も、次からは、JIT を搭載するらしい : [] 2020/02/19(水) 10:03:13.31:z/G/Tqiv Electronで作られたソフトってVSCode以外に何がある? : [sage] 2020/02/19(水) 10:16:12.59:4HrdDmIC Electronによる掲示板ビューア Siki ttp://egg.2ch.net/test/read.cgi/software/1581869479/ 数日前偶然見つけた : [sage] 2020/02/19(水) 10:46:23.82:WbyYOLLj Slack Fiddler Everywhere : [sage] 2020/02/19(水) 11:15:19.90:WbyYOLLj Skype、Discord、Atom、Wordpress、WhatsAppのそれぞれデスクトップ版はElectronらしい : [sage] 2020/02/19(水) 16:22:36.71:z/G/Tqiv 返信ありがとうございます。 : [sage] 2020/02/19(水) 18:04:10.08:5ReMICFY 公式サイトにまとめられてる ttp://jump.5ch.net/?https://www.electronjs.org/apps : [sage] 2020/03/03(火) 12:38:04.52:OUIky4K3 HomebrewのインストーラがBashに置き換えられた : [sage] 2020/03/17(火) 15:04:35.43:F6UjfHtk GitHub、パッケージ管理システム「npm」をメンテナンスするnpm, Inc.を買収 ttp://forest.watch.impress.co.jp/docs/news/1241272.html : [sage] 2020/03/17(火) 15:06:30.14:hD7fKBeR 一番望まれてたところに落ち着いてよかったな : [sage] 2020/03/17(火) 19:30:12.44:kaSPl16J どっちにpublishすればいいねん問題は杞憂に終わったか でも一強他弱の構図ってあんまりろくなことにならないんだよなぁ : [sage] 2020/03/18(水) 00:48:08.66:DfI3jJn5 やーんが頑張るやん : [sage] 2020/03/18(水) 00:56:50.83:Y6R8GMvO やーんはcliだから今の話とはちょっと… リポジトリ/レジストリがms/github一強過ぎて他の選択肢がーってことよね : [sage] 2020/04/17(金) 01:34:09.29:bDh7CEKX eventsモジュールにいつの間にか生えてるonceメソッド ずっと前にこのスレで誰かが欲しがってたやつだな : [sage] 2020/05/14(木) 13:28:24.58:IPYOGIQF Deno出てきたけどコアモジュールの互換性がないのはきつい 両対応のための中間モジュールが必要になって太る結果にならないといいけど : [sage] 2020/05/17(日) 10:25:40.44:f6yoswhG 今から始めるならDeno1択ですね : [sage] 2020/05/17(日) 12:43:33.92:D/2Y1Nc3 勉強を始めるならそれでもいいがプロダクションで使うのはまだしばらくnode一択だな : [sage] 2020/05/17(日) 14:17:45.25:XFHZbI1n Deno普通に良さそうだな。 地味に名前で喧嘩売ってるのも嫌いじゃない。 : [sage] 2020/05/17(日) 15:05:29.10:bDXiWOOM 次はおでん ttp://jump.5ch.net/?https://twitter.com/ryanflorence/status/1261097693033553920 node deno enod oden <- this has potential ttp://jump.5ch.net/?https://twitter.com/5chan_nel (5ch newer account) : [sage] 2020/05/17(日) 15:59:01.17:pmJJj293 deno、typescriptネイティブに使えるのが良いな セキュリティ機能は、早々にalias切って無効化して使いそう。 あと、モジュール読み込みがgolangぽくURIなのは構わんけど、deno.landの信頼性が未知数だ : [sage] 2020/05/17(日) 16:38:25.62:XFHZbI1n モジュールがURIなのはgoと同じ轍を踏みそうで気にはなるな。 みんなちゃんと互換性に注意して作って、最初からRESTなAPIのようにv1とかv2とかパスに含めるかな?みたいな猜疑心はある。 ただ、Denoでよくやったと思うのは、バンドラーを積んだ事だと思ってるけど、みんなどう思う? 今までnodeで作ったサーバモジュールをインターネットが繋がってない環境にデプロイするの、結構めんどくなかった? : [sage] 2020/05/17(日) 18:40:18.02:ZSTUbran npmのパワーなしに開発なんて出来ない : [sage] 2020/05/17(日) 19:13:03.17:CWw2P5tA arm64用のパッケージがほしいdeno : [sage] 2020/05/18(月) 09:17:50.86:y60azEFm bundleは素晴らしいと思う。 モジュールURIはversion含められるみたいよ : [sage] 2020/05/18(月) 10:49:02.60:3+tKSNz+ 1.0で指定できなくね? : [sage] 2020/05/18(月) 11:19:43.08:AZvqm7LQ armまだなのか。ラズパイで動けばホントに言うことなかったんだけどな。 : [sage] 2020/05/18(月) 13:49:33.87:y60azEFm モジュール周り ttp://jump.5ch.net/?https://deno.land/manual/linking_to_external_code : [sage] 2020/05/18(月) 14:53:11.68:X/pFb7Is やっぱbundle前提か。 しかし、deps.tsは言われてみるとなんと言うことはないんだけど、賢いな。 こいつがっつり使ってみようかな。 : [sage] 2020/05/18(月) 23:35:57.15:a6jMS+hP Nodeと併用できないと趣味以外で使う人いないだろうな : [sage] 2020/05/19(火) 10:49:44.03:GoO5KVYD node.jsなしでESLintが動かないなら難しい あとlanguage protocol serverが実装されないと難しい 開発ツールとしてのポジションとなるのは難しいね : [sage] 2020/05/19(火) 11:59:16.06:1h+Pwucu VSCodeのランゲージサーバー動いてるよ : [sage] 2020/05/19(火) 12:42:47.30:482topUH linterはdenoが公式に内蔵する可能性高い formatterはすでに入ってる : [sage] 2020/05/23(土) 17:14:18.75:0ZrNuMGI nodeにもTLA着たけどREPLじゃ動かんな 仕様ではESM限定だった気がするけどDevTools辺りではできてなかったっけ : [sage] 2020/05/24(日) 21:34:47.39:4uKrfJjq やっぱ周辺ツールが整わないと使いづれえな : [sage] 2020/05/27(水) 00:55:30.95:Qj2nGC3D ttp://jump.5ch.net/?https://youtu.be/lK384YQx-h0?t=203 : [sage] 2020/06/20(土) 18:47:10.97:3Kl5NtPD Why deps.ts and mod.ts is BAD in Deno ttp://jump.5ch.net/?https://dev.to/wongjiahau/why-deps-ts-and-mod-ts-is-bad-in-deno-bjo : [sage] 2020/06/23(火) 05:08:14.54:XbLXAbNL こんな感じのコードでresolveは実行されてもpromiseが伝達しないケースがあるんだけど 内部的にはどういう理屈でそうなってるの? new Promise(function(resolve,reject){ eventemitter.on('hoge', function(){ this.removeAllListeners(); resolve(); }); }); : [sage] 2020/06/23(火) 08:23:00.68:OtlYTeas お前が間違ってるだけに500億ペリカ : [sage] 2020/06/23(火) 09:23:44.44:jyrEAGC5 伝達されないケースの具体例を出さないとわからんよ : [sage] 2020/06/24(水) 01:09:40.37:KrEfgFvd 実際にはlistenerがasync関数で後から発火した他の同期listener内で先にresolve実行してた そりゃ伝達しないわ… : [sage] 2020/07/03(金) 01:38:35.72:0cCY6OI/ Web API実装の流れでNodeにEventTargetが来たけど使う人いる? 逆なら欲しかったけど : [] 2020/07/23(木) 10:30:41.88:LlcoMZmJ データベースからデータオブジェクトを returnする関数をあたかも同期関数のように ただ実行するだけで戻り値を得られるように作りたいです。 DB情報取得関数定義内でasync await promise を使ってみましたが 戻り値がpromiseのpendingになってしまったので 仕方なく実行側でもpromiseを生成してラップして then()を使ってようやく戻り値を得られました。 しかし本来は実行側でpromiseとthenを使うことなく 戻り値を得たかったです どうすれば良いか教えてください。 あと関数定義内でresolveの実行とreturnがどう違うのか がわかりません。 : [sage] 2020/07/23(木) 11:06:39.72:MBVi+zLE 頼むからコードで説明してくれ 似た質問多いけど非同期を同期にすることは不可能 やるなら呼出側の文脈をまるごと非同期にしてawait : [sage] 2020/07/23(木) 16:11:17.38:+diZSvZW まるごとも今ならTopLevelAwaitがあるから楽だね callbackに渡されるresolveはpromiseを解決させるためのスイッチであってreturnではない Promiseに対する理解が曖昧なままDB扱う処理を書くのは危ないと思う : [sage] 2020/07/31(金) 16:11:51.42:CGhJjJjO ライブラリっつーのか? Passportやexpress-sessionってどうやって見つけてきてるの? : [] 2020/08/04(火) 02:57:28.08:vydsY05j github express middleware やりたいことの英語 でググる : [] 2020/08/06(木) 20:05:58.89:MUhDPlnI cryptoで公開鍵ファイルつかって 暗号化したんですが 同じデータが毎回違う暗号になってしまいます。 原因を教えてください : [sage] 2020/08/07(金) 00:05:01.42:TzYKRTqH たぶん、時刻とか、何かランダムな要素を使っているのだろう : [sage] 2020/08/07(金) 19:32:20.45:ysU+OJWY 今後は大規模システム以外は全てJavaScriptだけで書ける夢のような未来が来るね。 : [sage] 2020/08/07(金) 20:50:53.11:TH1C+bUh なんという地獄 : [] 2020/08/08(土) 10:07:34.33:noFfmCPy salt iv : [] 2020/08/08(土) 14:52:32.43:ciegX9N/ 非同期処理って普通に バグと脆弱性の温床になるよね? : [sage] 2020/08/08(土) 17:42:04.42:/vlgEPfS その理解のまま触っていたらそうだろうね : [] 2020/08/08(土) 23:33:14.88:f7NhkLiO node.js 面白いな。久しぶりにおもしろい言語だ。 : [] 2020/08/08(土) 23:34:04.83:f7NhkLiO PythonとかRubyとかPHPって面白いとか言われてるけど、正直イマイチだよ。 俺はPerlのが好き。 : [] 2020/08/08(土) 23:46:39.64:bKK8FlY/ サーバサイドで非同期で IOやりたい状況なんてそうそうないよ。 ロギングくらいか とくにトランザクション処理で非同期に 動かれちゃうとほんと地獄 同期的な処理をする専用の DBアクセス ファイルIOアクセス ネットワークアクセス するライブラリを提供すべき 使用側でpromiseとかじゃなくて : [] 2020/08/08(土) 23:55:39.53:OT1M6D83 今一番熱いライブラリ。 ttp://jump.5ch.net/?https://ja.uncyclopedia.info/wiki/Progress_display : [sage] 2020/08/08(土) 23:56:53.43:ZWuolq0D 言語じゃないけどな : [] 2020/08/08(土) 23:58:34.55:OT1M6D83 ライブラリですね。 : [] 2020/08/09(日) 00:40:28.88:sb6ynJ/q 違います : [] 2020/08/09(日) 00:51:05.32:2tff8pgk データベースですね。 : [sage] 2020/08/09(日) 01:20:28.41:8UfVx4ij 違います : [] 2020/08/09(日) 01:48:00.71:2tff8pgk ゴミですね。 : [sage] 2020/08/09(日) 12:06:37.91:4gz4Sy4n そ、違います : [sage] 2020/08/09(日) 13:10:04.80:HdBz3xHm nude.js ですね : [] 2020/08/09(日) 16:47:11.71:sb6ynJ/q ttp://jump.5ch.net/?https://www.moongift.jp/2012/02/20120211/ nude.jsは画像をCanvasで読み込んでヌード画像か否かを判定するソフトウェアです。 裸が見たい!たくさんの画像の中からとにかく裸を見たい!と思う人はnude.jsを自動実行してみると幸せになれるかも知れません。 ttp://jump.5ch.net/?https://github.com/pa7/nude.js/ : [] 2020/08/11(火) 00:54:04.11:jdRsH5YI これまでの非同期対策手段の やって欲しかったのはこういうことじゃないんだよ感 がやばい 本来求めてるのはコールバックの記述ないようにして 欲しいのと 余計な関数定義無しで処理を書きたいということ なのに Promiseやasync awaitがやってるのは 非同期処理をネストしなくて良くするだけで 肝心のコールバック記述や 余計な関数定義自体はなくならず、 それどころかこれらを使うと更にコードが複雑に なって可読性が下がってしまう。 そういうゴチャゴチャした部分を無くして欲しいんだよ。 : [sage] 2020/08/11(火) 02:13:08.66:DrUL4lPZ 具体的に理想系を書いてくれるか? : [sage] 2020/08/11(火) 06:51:02.02:KjgiWsfP WScript.sleep(1000); : [sage] 2020/08/11(火) 09:44:42.63:DyHWpKfR ボンッキュッボンッ! : [sage] 2020/08/11(火) 12:08:29.63:HwJhgroD 互換性ぶっ壊してでもコールバックなAPIをどうにかしてくれ ってことならDenoじゃね : [sage] 2020/08/11(火) 12:31:29.28:RcrtMjNU はコールバックだけじゃなくてPromiseも否定してね? どういうものを期待してるのかわからんが、少なくともdenoじゃ解決にならんかと。 : [sage] 2020/08/11(火) 13:28:07.94:gDej+7HY ならGoだろうな コールバックも非同期処理もいらない さようなら : [sage] 2020/08/11(火) 13:50:34.02:OsUriXGV どうせメッセージパッシングに文句垂れるな決まってる : [sage] 2020/08/11(火) 13:51:16.33:OsUriXGV s/垂れるな/垂れるに/ : [] 2020/08/11(火) 15:38:26.65:jdRsH5YI ごめんちょっとコールバック入っちゃったけど こんな感じがいい 「await」という単語は他に思い浮かばなかったから 真似しただけで別の単語でもなんでもいい 実際の「await」の処理とは無関係 await setTimeout( ()=>{}, 1000); console.log('1秒経過しました'); コールバック引数が欲しい場合 ver data = await $.ajax({省略}).done(); console.log('レスポンスを受信しました'); console.log(data); : [] 2020/08/11(火) 15:42:24.62:jdRsH5YI ↑varをverと書いてしまいました。 : [sage] 2020/08/11(火) 15:50:28.89:RcrtMjNU 結局Promise化すれば解決する話に見えるが 中途半端なコールバックの存在が謎。 : [sage] 2020/08/11(火) 16:25:16.36:E31y9T9f Promiseとasync/awaitで解決済みだよなぁ const sleep = ms => new Promise(resolve => setTimeout(resolve, ms)) って用意するなりimportするなりしておけば await sleep(1000); console.log('1秒経過しました'); これだけやんけ $.ajaxとか書いちゃう知恵遅れさんだからしょうがないか : [sage] 2020/08/11(火) 17:12:35.72:dI29r3/p あんまりPromiseの事わかってなくて批判しちゃった感じかな。 : [sage] 2020/08/11(火) 17:34:48.50:DrUL4lPZ スコープないのかよ ゴミくそ : [sage] 2020/08/11(火) 19:26:37.90:HwJhgroD 数行のコードじゃ意図が読み取り辛いけど 非同期関数を同期にしたいってコトなら絶対無理 : [sage] 2020/08/11(火) 19:33:26.30:GZz3NG8W 非同期関数を同期関数のように呼び出せるのがasync/awaitだけどな 動作の話じゃなくてソースの見た目の話だろどうせ そんなこと気にするよりlet/const覚える方が先だぞ : [sage] 2020/08/12(水) 07:56:55.71:XuneBSJh promiseもasync/awaitも何も分かってないけど批判してたということだけは非常によく分かった : [] 2020/08/14(金) 21:41:29.39:Fc7pCCli どうでもいいけど 独自の概念や用語をバンバン押し付けてくる フレームワークは ゲロ以下の匂いがプンプンするぜぇーって思うわ PHP系の糞フレームワークに多い : [sage] 2020/08/14(金) 21:47:18.13:970Aew80 逆に、独自の概念や用語を押し付けてこないフレームワークって例えば何? : [sage] 2020/08/14(金) 21:50:10.65:B7DyCr2o アセンブラ : [] 2020/08/14(金) 21:53:03.39:Fc7pCCli やっぱexpressかな? ララベルとかyiiとかは ファサードとかDIコンテナとか ゴミみたいな余計な用語出てきて腹立たしいわ : [sage] 2020/08/14(金) 21:56:59.15:970Aew80 ファサードもDIコンテナも、フレームワーク独自の用語じゃなくてごくごく初歩的な一般用語では? : [] 2020/08/14(金) 22:07:25.07:Fc7pCCli そうだね。webとは関係ないよね webとは関係ない設計上の概念を Webフレームーワークが押し付けてくるのはおかしいよね フレームワークはルーティングと HTMLレンダだけやってりゃいい DBにもビジネスロジックにも出しゃばってくるべきでは無い とくにJavaをパクってるだけのPHPでそんな内容 吐き気がするに決まってるだろ : [sage] 2020/08/14(金) 22:24:17.70:B01JOFDh DIは、最初はめんどくさい仕組みだなって思うけど、 ある日突然納得感に包まれるぞ。 : [] 2020/08/18(火) 21:29:27.81:ZCkQ8Dn9 MySQLとかのDBアクセス 同期的にやってくれるライブラリないんか? fsはSync版あるやん : [sage] 2020/08/18(火) 21:50:58.81:uzsO+4Q7 async/await使えばいいやろ fsのsyncなんてお遊びかツールでしか使えんし : [sage] 2020/08/18(火) 21:58:10.75:wak8Bz4V もうjavascriptだけで出来ないことはない! javascript最強! javascript最高! 今、javascriptの伝説が始まる!!!!!! : [] 2020/08/19(水) 04:18:53.44:vidjSvBe キッショ : [] 2020/08/20(木) 19:53:59.17:KMfIHaw0 真偽値が非同期になるとヤバイ trueかfalseのどちらかかと 思っていた変数が pendingになっててif文の分岐に ミスがあったとかマジで勘弁 セキュリティやトランザクション処理が クリティカルな部分でこんなことやられたら叶わん : [sage] 2020/08/20(木) 20:05:16.58:t5R+TL7j ごめんよく分からないので コードで頼む : [sage] 2020/08/20(木) 20:09:16.66:AoU9HO21 低脳はプログラマやめとけ : [sage] 2020/08/20(木) 20:16:29.65:X1nNk3cj それマルチスレッドの話じゃね?「非同期」つってもjavascriptのそれとは意味が違う。 : [sage] 2020/08/20(木) 20:32:39.56:tyNv301J pendingは普通にPromiseの話やろ Promiseを理解せず非同期のコード書くのが悪い : [] 2020/08/20(木) 20:41:23.02:qjxJt4Hn node.jsのスレだからJavaScriptの話なんだが nodeってシングルスレで合ってる? あと素人で申し訳ないが if文がある時もそれ以降のコードに勝手に進んじゃうの? たとえば if(非同期の真偽値メソッド() ){ return; } console.log('ifに該当したら逐次処理ならここには到達しないはず'); 逐次処理ならelseなしで処理を抜けることが出来るが、 非同期処理だと条件分岐も待ってくれないの? こういうのがかなり怖い : [] 2020/08/20(木) 20:44:17.20:qjxJt4Hn 非同期のコードが書くの悪いって僕も書きたくないです。 でもデフォルトで非同期の関数ばかりですよね? ちょっとでも油断すると非同期になっちゃうんです もちろんasyncやawaitつけてるけど ついつけ忘れるといつの間にか非同期になってるんです。 : [sage] 2020/08/20(木) 20:49:28.75:AoU9HO21 await付け忘れるヤツが悪い TypeScriptで型チェックしとけ : [sage] 2020/08/20(木) 21:17:24.78:t5R+TL7j if(await hoge())するだけ 何も難しいことない : [] 2020/08/20(木) 22:05:57.37:wmqy4S/J まぁそこは同期が基本から非同期が基本に頭切り替えないとね : [sage] 2020/08/20(木) 22:43:19.84:tyNv301J nodeに限らずJSは基本シングルスレッド JSで本格的にコード書くなら シングルスレッドでどうやって非同期や並行処理を実現してるのかを 最低限の知識として知っておく必要がある setTimeout(fn, 0)で渡したfnがどのタイミングで実行されるのかと同じ 少し詳しめのチュートリアルならだいだい解説してある : [] 2020/08/21(金) 00:43:07.71:CMx879FZ とは言え今ではスレッドも使えるから上手く利用したいところ。 シングルスレッドにこだわってコールバックの中で時間のかかる処理しちゃったら本末転倒。 : [sage] 2020/08/21(金) 01:18:26.76:RmDQK783 プロセスも使えるぞ。 せっかくだからV8 isolateも使いたいけどどうやるんだっけ… : [sage] 2020/08/21(金) 01:47:45.18:fPne1yUC workerが別スレッドのisolate : [] 2020/09/01(火) 20:38:22.47:QR4OvP6I nodeはバッチ処理にはマジで向いてないよな ループ中に非同期発生すると ループ番号の順序性があべこべになるとか ヤバすぎる ループ外グローバル変数への 数値溜め込み処理とかどうなるんだこれ あと完了したと思ってた処理が 完了表示されただけで 実はまだ非同期で動作してたとかありそうで 怖すぎる : [sage] 2020/09/01(火) 20:42:12.06:I2eVqLbl 無能w : [] 2020/09/01(火) 20:43:25.87:tH3NhyKR アホ過ぎるwww : [sage] 2020/09/01(火) 20:58:34.78:z4ASdXsC >ループ中に非同期発生すると まるで自然現象とか天災みたいな言い方 : [] 2020/09/01(火) 21:12:04.15:QR4OvP6I すまん、俺は無能なんだわ バッチ処理は終わるまで時間がかかるから プログレスバーとして 進捗報告として データベースの進捗状況テーブルへ 進行度をアップデートしてんだわ 毎ループ進捗報告しなくていいから %で余り算して定期的に 進捗をアップデートしてんだわ ところがその進捗報告DBアクセスで 非同期が発生してループの順序が乱れる 進捗状況の進行度が進んだり戻ったり トリッキーに変動するんだわ でもループの最後まで到達して完了すると 全てのデータ整合してんだわw なぜ中間状態だけこんなにトリッキーなのか謎 : [sage] 2020/09/01(火) 21:24:55.53:I2eVqLbl コード書くのやめろ : [sage] 2020/09/01(火) 21:59:23.78:usFRsaVF 進捗の書き込みはシリアルにやればいいよね? 「80%完了」の後に「70%完了」が来ても無視すればいい : [] 2020/09/01(火) 22:02:04.20:QR4OvP6I 無視するようにしてるんだよ whereで大小比較して 更新する数の方が小さかったら更新されないように してる でもDB上の数値が減るんだよ。何故だ? : [sage] 2020/09/01(火) 22:05:22.51:3AXmEbq5 コードも無しで言われても知らんわ : [sage] 2020/09/01(火) 22:28:22.77:usFRsaVF シリアルに書いてないからでしょ 今実行中の進捗報告の書き込みが完了してから 次の進捗報告の書き込みをする 理解できないほうが謎 : [sage] 2020/09/02(水) 02:59:56.27:bHRnrATQ 7月入ってからageながら変なこと書いてんの同じ人っぽいな 挫けないでがんばれよ : [sage] 2020/09/02(水) 12:32:41.24:U40YU3HI 並列処理しなければ良い 1つが、確実に終わってから、 次のものを処理する : [sage] 2020/09/02(水) 13:19:02.32:FrAP3fk+ 回答者まで同じ内容を繰り返し始めたw : [] 2020/09/02(水) 21:31:48.71:C0O9Iab7 こうなる原因が今日特定出来た ループ自体が多重に並列に動作してた 1つのfor文が動いてるんだと思ってたら ログをよくよく見たらfor文自体が 3つくらい並列で動いてた 勝手に多重実行になった原因は、 MySQLが処理しきれなくなってタイムアウトが 発生したあと nodeが自動で(promiseの仕様?)最初から リクエストの処理をリトライするようで ピタゴラスイッチのアルゴリズム体操見たいに なってたわw 初歩的な質問ですが サーバに飛んできたリクエストだけを中断するには exitが正解ですか? returnが正解ですか? res.end(); ですか? サーバ自体は止めたくありませんが ある関数自体を中断するだけでなく そのリクエストだけ大元から全部中断したいです : [sage] 2020/09/02(水) 22:07:44.16:m9UvO5Rn お前がコード書くのをやめる、が正解 : [sage] 2020/09/07(月) 13:52:39.16:KQEAaFWf どなたか、次の 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 : [sage] 2020/09/07(月) 14:38:17.12:UUesL9I9 説明できますかって何だよ挑発してんのかよ resolve()は必ずイベントループに戻ってからthen()のコールバックが呼ばれるからに決まってるだろがボケカス マイクロタスクキューでも調べやがれポンコツ : [] 2020/09/07(月) 15:25:12.91:Egt+Qwmp 0 4 1 6 2 3 5 とか 0 4 6 1 2 3 5 にならない? : [sage] 2020/09/07(月) 15:45:30.49:UUesL9I9 ならない Promiseコンストラクタはコールバックを即時実行する MDN executor 関数は Promise 実装により resolve 関数と reject 関数が渡されて即座に実行されます (Promise コンストラクターが作成したオブジェクトを返すよりも前に executor は呼び出されます)。 : [sage] 2020/09/07(月) 17:09:51.23:3uGG3SyO コールスタックが空にならないと、各種キューに入ってる処理は実行されない 最初にconsole.log(“6”);まで処理したらスタックが空になる その状態でsetTimeoutのタイマーが発動してキューにコールバック関数が入る スタックが空なのでキューの1番目にあるsetTimeoutのコールバック関数がスタックに積まれて呼び出される この関数がreturnするまではスタックは空にならないので それまではキューに入った処理を実行するタイミングはない console.log(“3”);まで実行してreturnしたらスタックが空になるので その後、各種キューに入ってる処理があれば実行される : [sage] 2020/09/07(月) 17:21:12.28:KQEAaFWf 試してみたんですが、setTimeout()で指定している関数の中で、 resolve(111); resolve(222); resolve(333); としてから、 sample.then( function(value) { console.log( "5, value=", value ); }); とすると、 5, value = 111 とだけ表示されて、222, 333 の分は表示されないんですが、どういった 理由なのでしょう。 : [] 2020/09/07(月) 17:33:56.06:Egt+Qwmp お前はもう死んでいる : [sage] 2020/09/07(月) 17:39:40.90:UUesL9I9 最初にresolve()した時点でそのPromiseの値は確定するから つかスレに書き込む暇があるならドキュメントでも何でもいいから学習してPromiseがどういうもんか理解してから試せよ Promiseってのは「将来確定する"値"」を表現するもんなんだよ : [sage] 2020/09/07(月) 17:52:24.52:neZOTIA1 一旦解決したPromiseを再度変更出来たらそれは改竄と呼ぶべきだな reject(111); resolve(222); reject(333); これは成功したのか失敗したのかどっちよ? : [sage] 2020/09/07(月) 18:07:19.89:ieMFgaPK これ近頃よく見る相手にしちゃダメなやつだな : [sage] 2020/09/07(月) 18:08:35.44:UUesL9I9 最初のreject()で失敗が確定する Promiseの状態はpending→settledと変わる settledにはfulfilledとfailedがある resolve()でfulfilled、reject()でfailedになる : [] 2020/09/08(火) 00:01:18.48:8muSUg7S nodeの非同期を同期的にやりたい時のコードって promise async await resolve thenが複雑に入り組んで 意図した動きになった時はめっちゃ過剰なコードになるよね 精神的にヘトヘトに疲れて 清書する元気も起きん promiseやresolve変数がたくさん生成しまくって 名前つけるのもめんどうになって p1とかr3みたいなのが沢山できてる 特にforループの中に非同期使うときは地獄 早くmysqlを同期的にクエリ投げられる ライブラリ出してください。何でもしますから。 : [sage] 2020/09/08(火) 01:45:13.23:1Wq/gxeB だからお前はプログラマやめろって 才能なさすぎ : [sage] 2020/09/08(火) 02:32:28.50:o0Kum352 nodeも非同期も関係なくお前がめっちゃ過剰なコード書いてるだけだからな : [sage] 2020/09/08(火) 12:00:40.54:gglleEZ2 ライブラリは需要があればとっくに作られてる 今現在無いのはつまりそういうことだ : [sage] 2020/09/08(火) 12:14:59.78: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(); と書ける : [] 2020/09/08(火) 13:42:27.36:8muSUg7S select文を投げるのは selectの結果が欲しいから投げる訳であって 結果が取得できる前に 後続のコードに勝手に動かれたら困るのは 当たり前だよなあ? DBアクセスで非同期って何がメリットが あるのか分からない。 それにnodeの概念はバカの新人に言葉で説明しにくいんだよ あいつぜってー非同期とか理解出来ねえぞ : [sage] 2020/09/08(火) 13:47:44.03:op+kwVtr 新人に言葉で説明できないバカ 新人かわいそう : [sage] 2020/09/08(火) 13:57:56.32:c4WmASUK > 勝手に動かれたら 何も理解してないことがよく分かるw : [sage] 2020/09/08(火) 14:51:08.13:QV2EnsJl お前の場合はMySQL一つしか使わないのが当たり前かもしれないが世の中にはシャードされた複数のMySQLにアクセスしたりキャッシュのRedisにアクセスしたり検索エンジンのelasticsearchにアクセスしたりいろんなことをしなきゃいけないアプリがあったりするわけ Nodeではこれらは非同期だから特別なことをしなくてもたやすく並行アクセスできる 同期で並行アクセスしようとすると複数スレッド使って待ち合わせすることになるから非同期より簡単にできるわけではない : [] 2020/09/08(火) 16:00:24.51:8muSUg7S ああ、アクセスするのは簡単やと思うわ 問題はその結果の始末を付けるのが大変だと思うわ なんかいい書籍あるか? : [sage] 2020/09/08(火) 17:40:30.89:Qj0BclxS 本当に本当にダメなヤツだなぁ(呆れ) アクセスってのは接続して要求を投げて結果を受け取ってそれを処理して接続を閉じるまでの一連に決まってるだろ の例だって後始末まで書いてあるのに全然大変じゃないだろが : [sage] 2020/09/08(火) 19:19:05.95:gglleEZ2 とりあえずオライリーでも読んだらいいんじゃない ttp://jump.5ch.net/?https://www.amazon.jp/dp/4873118735/ : [sage] 2020/09/09(水) 06:42:52.84:N3PFvdWI スレ的には真っ当な質問なのに当たり強過ぎでしょ : [sage] 2020/09/09(水) 08:44:06.86:7Dxn++Hv 質問じゃなくて文句 : [sage] 2020/09/09(水) 17:07:03.98:SFlZHAWP 謙虚に質問してればレスも優しかったかもよ : [sage] 2020/09/09(水) 21:03:51.38:OFM+73CL 分からないだけならともかく延々と自分以外を貶めつつ無能を晒してたからなぁ : [sage] 2020/09/09(水) 21:12:34.50:XGuez22g それな node.js が悪い ラ 非同期が悪い ラ promise が悪い ラ async/awaitが悪い ラ 新人がバカ ○ ID:8muSUg7S がバカ こうだからな : [] 2020/09/10(木) 14:55:06.91:rLZBXCmM グレたωωω : [] 2020/09/10(木) 19:56:10.61:FWP0gZB+ clusterでマルチプロセスしようとしたんだけど 「EADDRINUSE(ポートが既に使われている)」 エラーがどうしても出てしまいます。 もちろん既に稼働しているnodeはなく、 fork元のapp.jsでlistenしているのと同じポート 子プロセスでまたbindしようとして失敗しているようで 子プロセスは外部からリクエストを受けるような ものではなく、重い処理をコア分散させて並列処理したいだけです 子プロセスにポート割り当てが必要な理由がよく分かりませんが 恐らく親プロセスと子プロセス間の通信 とかに使うんでしょうか? 子プロセスのポート割り当て回避か、 親プロセスと別ポートを割り当てる方法はありますか? : [sage] 2020/09/10(木) 20:18:09.02:VafdMbGz > 子プロセスは外部からリクエストを受けるようなものではなく それならclusterモジュールは必要なくね clustetは複数のプロセスを使って大量のリクエストを捌くためのもの ただの子プロセスならchild_processのメソッドを使う : [] 2020/09/10(木) 20:21:53.78:C+K2oJgr なるほど、助かりました じつはworker_threadsも試してみて同じ エラー出たので child_processが正解でしたか これだとポートは関係ない? : [sage] 2020/09/10(木) 20:43:38.94:oBZEl9rg clusterだと親は子を産むだけの役割じゃなかったっけ : [sage] 2020/09/10(木) 20:45:06.67:oBZEl9rg あとworker_threadsで同じエラーが出るのはいくらなんでもおかしい : [] 2020/09/14(月) 20:42:48.98:JdQogpR1 の者ですが 今日これをデバッグしてました。 clusterでもwoker_threadsfでも child_processでも 「EADDRINUSE」が発生しました 発生するタイミングは子プロセスを生成した時でも なく 子プロセスでMySQLに対しのコネクション確立時でもなく 確立したDBコネクションからクエリを投げるコード を実行する時に発生しますが なぜこのタイミングなのか分かりません ここで気になったのが nodeでフロントユーザーに対し 80番ポートをlistenしていて nodeがローカルのMySQLにアクセスする時 nodeのクライアントポートはフロントと おなじ80を使うのでしょうか? それとも別のランダムポートを取得してきて使うのでしょうか? : [sage] 2020/09/14(月) 20:55:49.60:AayaioGL 説明と全然違う事象じゃねーの せめてエラーメッセージとスタックトレース貼れ : [] 2020/09/14(月) 20:55:58.86:JdQogpR1 続きですか もう少し調べてみると 「EADDRINUSE」が発生するタイミングは MySQLに対しコネクション確立後 SQLを投げる時で間違いないと思いますが、 エラーのスタックとレースを見ても 何かのハンドラから駆動されており自分の書いたコードでは ありません。 nodeかexpressかmysqlモジュールのハンドラ だと思います 子プロセスはローカルのMySQLに対して 接続して読み書きするだけで フロントとのやり取りは一切ありませんが 生成元の親プロセスはExpressのapp.js で立ち上げてるwebアプリです : [] 2020/09/14(月) 20:56:11.94:JdQogpR1 不思議なのが子プロセスで mysqlとコネクション確立までは失敗せずに 動作し、SQLを投げる段階で なぜか大元の「app.js」をもう1つ起動しようとしており app.jsはもう既に起動してるので、 listenポート重複により上記のエラーが発生するわけです 暫定対応で動くようにはなりましたが、 なぜローカルのDBアクセス時にapp.js実行する 動きをするのかの原因がまだ分かっていません webとは関係ないはずの子プロセスのファイルを 単体でコマンドで実行した場合も Expressのベースディレクトリにある 「app.js」が実行されていることが分かりました。 自身のコードではこのようなことをしてないので フレームワークかモジュールの内部処理だと思いますが、 知っている方がいましたら教えてください。 : [] 2020/09/14(月) 20:57:39.11:JdQogpR1 すみません、もう帰宅してしまったのと 機密事項で怒られるのでスタックトレースは貼れません : [sage] 2020/09/14(月) 21:14:49.11:AayaioGL > 単体でコマンドで実行した場合も > Expressのベースディレクトリにある > 「app.js」が実行されていることが分かりました。 clusterも何も関係ねーじゃんwww 断言するがフレームワークもモジュールもmysqlも関係なくてお前のバグだから真面目に仕事しろ 子プロセスから再現に関係ない部分を削除しまくって最小限のここで見せられるコードになるまで書き込まなくていいよ : [sage] 2020/10/03(土) 14:17:11.74:l4QjehZB ttp://jump.5ch.net/?https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q14232251614?sort=1&page=2 abiko tetuってやつヤバすぎ : [sage] 2020/10/17(土) 18:10:22.96: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 を試しましたが、途中で警告が出たりして、結局、元のエラーは直りません。 直す方法はありますでしょうか? : [sage] 2020/10/17(土) 18:39:14.64:cX3MrjsP 結論的には、 $ npm install -g fs-extra $ set NODE_PATH=%AppData%\npm\node_modules としてから、 node xxxx.js とすると直りました。 : [sage] 2020/10/17(土) 23:48:03.55:5XNVi7jP Windows? : [sage] 2020/10/19(月) 16:19:09.43:faSV5MEm # Fatal error in , line 0 とか見慣れぬエラーで落ちててビビって調べたらv14のバグか : [sage] 2020/10/25(日) 03:29:13.70:xG/xcmJA import って mjsにしないといけないし : [sage] 2020/10/25(日) 03:30:20.11:xG/xcmJA 途中送信すまん : [sage] 2020/10/25(日) 04:23:13.46:Xs0QdE0/ mjsにしないといけないから何なんだよ気になるだろ… 因みにpackage.json弄れば.jsをESM扱いにはできる : [sage] 2020/10/25(日) 13:32:05.91:xG/xcmJA node v15にしたからmjsにして requireを全部importに変更したらpuppeteerがimportできなくてまたrequireに戻した : [sage] 2020/10/26(月) 06:48:46.11:AP4vuhmG 下記のモジュールを使用してHTMLソースからタグを全て取り除く処理を作っているのですが、タグを取り除いてくれません。 ES6で記述されたjavascriptを対応していないブラウザで動作させるために記法を変換してから読み込ませることは知っているのですが、 nodeコマンドで直接実行する場合にもそのような記法の変換などが必要なのでしょうか? ◆モジュール ttp://jump.5ch.net/?https://github.com/ericnorris/striptags ◆ソース main.js ----- var striptags = require('striptags'); striptags(html); console.log(html); // 取り除かれていない ◆コンソールで書きコマンドを実行 node main.js : [sage] 2020/10/26(月) 13:39:27.76:jWz3MMEX html = striptags(html); じゃないの? : [sage] 2020/10/26(月) 14:12:32.65:AP4vuhmG 教えて頂いた方法で取り除かれていることが確認できました。 公開されているソースを確認したら戻り値を受け取るようになっていました。 今後はソースも確認するようにします。 ありがとうございました。 : [sage] 2020/10/26(月) 14:44:15.69:/aZJ5myY その前にJavaScriptの勉強をちゃんとすべきでは。。。 JSの文字列は不変って知ってればstriptagsの使い方を知らなくてもの書き方じゃダメってわかったはず : [sage] 2020/10/28(水) 03:46:46.75:Xggm0kAQ Fetchより先にAbortControllerが来るのタイムパラドックス感がある : [sage] 2020/10/28(水) 14:31:46.46:jeoOjGPI node.jsがあればPHPはもういらないよね? : [sage] 2020/10/28(水) 14:45:56.45:Nt7id6vD そんなことはない : [sage] 2020/10/28(水) 23:57:51.70:jeoOjGPI なぜ? : [sage] 2020/10/29(木) 00:23:44.55:6kIeo5xU rdb扱うのはphpの方が得意やろ : [sage] 2020/10/29(木) 00:35:34.69:Phiv6uZl v15で試したけど import puppeteer from 'puppeteer' で読み込めてるよ : [] 2020/10/29(木) 10:07:34.55:D91L/a15 俺も文法的にはPHPよりもjavascriptの方が好みなので、できれば移行したいんだけど、 URL単位で小物サービスを作る用途がメインなので今でもPHPを使ってしまう。 なんか、node.jsはCGI的に使うのはナンセンスという雰囲気があって、 でも、たまにしか使わない小物サービス毎にポート番号を消費したくない、 と思うと移行できない。 こんな俺にもおすすめなnode.jsの使い方ってある? : [sage] 2020/10/29(木) 10:28:14.20:89EHBpBz レンタルサーバーだといまだにPHPだかんね : [sage] 2020/10/29(木) 11:43:25.35:6uKcySyb ありがとうございます。 -gでインストールしてたのがいけないっぽいです : [sage] 2020/10/29(木) 16:31:46.11:Phiv6uZl 極々普通にNodeでもルーターから振り分ければいいと思う PHPだってサービスごとにhttpd立てているわけではないっしょ : [sage] 2020/10/29(木) 21:26:42.11:/i1l21sm 無料オンライン格ゲーを作る。 : [] 2020/10/29(木) 23:24:45.00:D91L/a15 ありがとう、それだ!俺に必要だったものは。 とりあえず、expressを入れればいいのかな? ちょっとやってみる。 俺にはレベル高すぎ(笑) : [sage] 2020/11/07(土) 11:58:54.69:fULQIOig npm-run-all で複数のnpm scriptを連続で実行したいんだが、scriptのどれか一つでも 0以外のステータスを返すとそこで処理をやめてしまうのをどうにかできないのかな。 大抵の場合はその仕様でもいいんだけど、たまに、エラーだろうがなんだろうがとにかく 処理しきってしまいたい場合がある。 : [sage] 2020/11/07(土) 12:35:45.81:1KfyiAX9 --continue-on-error options.continueOnError = true; : [sage] 2020/11/07(土) 12:39:43.17:fULQIOig さんきう。オプション見落としてた。 : [] 2020/11/14(土) 16:32:10.90: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じゃなくてエラー画面が出るのが愛嬌だけど。 : [] 2020/11/18(水) 14:56:07.27:7Ekft4aV おめーら的にdenoってどうすか? 使ったことなさそうだけど : [] 2020/11/18(水) 19:28:04.93:Zh0DQZnV ほんのちょっとしか触ってないけど面倒くささが無い npmライブラリが使えないけど init だの install だの package.json だの tsc だのやったりいじったりしないで済むから手軽に感じた 時間が経ってライブラリが充実してくれれば普通に使いやすい環境だと思う : [] 2020/11/18(水) 20:11:49.14:7Ekft4aV 期待したいよな 開発者はイケメンだし : [sage] 2020/11/18(水) 21:25:12.52:v8HWKopj npmが使えないからエコシステムが育つまで様子見だな。 @types以前のTypeScriptみたいな。 : [sage] 2020/11/19(木) 01:51:43.98:/aqa7r+0 io.jsのように良い部分はNode.js側に取り込んでほしいね 最近は複雑さばかりが増しているし : [] 2020/11/21(土) 19:45:56.38: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 : [sage] 2020/11/21(土) 23:08:26.52:jQLdetle Ruby のBundler なら、プロジェクトルートに移動してから、 Gemfile にバージョン指定を書いて、 bundle install とコマンド入力するけど : [sage] 2020/11/21(土) 23:54:59.89:lsz7D7Ic npm i express@next npm知らないヤツが何ででしゃばるわけ? : [sage] 2020/11/22(日) 00:38:30.85:gYBzGuNC expressは当時koaに移行するのかと思ってたけど結局どっちも開発続いてるのな : [sage] 2020/11/22(日) 00:44:07.65:A21DE4YF koaもhapiもfastifyもexpressの牙城は崩せそうもない : [] 2020/11/22(日) 00:46:23.77:7U8BOc5J ありがとう。やってみたけどダメだった。 途中の表示には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 : [sage] 2020/11/22(日) 01:12:26.72:uIWU98XF viewコマンドはインストールされたものじゃなくて公開されてるパッケージの情報見るものよ : [sage] 2020/11/22(日) 01:15:05.72:nMBoVd/n npm viewはレジストリの情報を表示するものでローカルにインストールされたものとは無関係だからだなw npm ls express : [sage] 2020/11/22(日) 01:19:23.91:ujQ9d+0r インストールの時は $ npm i express@next って打ってるくせに なんで $ npm view express version って打つわけ? それなら $ npm view express@next version でしょうが… : [] 2020/11/22(日) 09:31:06.57:7U8BOc5J ありがとう。バージョン確認方法の方が間違ってたのか。 あぶねえ。パッケージ側の情報で確認してたら、何を試しても永遠に出来ないって言ってるところだったw 改めて確認したら、ちゃんと5.xが入ってた。 お騒がせしました。 $ npm ls express | grep express └── express@5.0.0-alpha.8 : [] 2020/11/23(月) 12:57:39.74:3jYl7MgH node.jsのドキュメントや書籍等で、セキュリティー対策を考慮して書かれているものがあれば教えてください : [sage] 2020/11/24(火) 12:43:32.88:gfNKbZsO (u_・y)っttp://jump.5ch.net/?http://asciimw.jp/search/mode/item/cd/A1000670 : [sage] 2021/01/01(金) 19:21:03.31:/+4IUuLb さくらVPSとかのlinuxサーバにwebアプリをデプロイするベターな手順ってなんかありますか 単純に考えれば、既存のサーバ中のプロジェクトフォルダを消して gitから新しくpullしてnpm ciすればいいはずなんだが ・毎回node_modulesを作るのは時間がかかるから、package-lock.json に変更が無い場合はそのまま引き継ぎたい ・ローカルの設定、ログフォルダといった、消したくないフォルダがある からちょっと面倒でなんとかしたい nodejs deployment tool とかで検索しても、すぐ自社のSaasに誘導しようとして 素のEC2的なlinuxマシンでの方法が分からなかった。 : [sage] 2021/01/02(土) 03:22:23.36:HtnkmSa8 普通にDockerでnpm i後のイメージ作ればいいんじゃない : [sage] 2021/01/02(土) 04:25:18.76:VICQRi/P ありがとうございます。やはりdockerか。 docker使えない自分はこんな感じでやっていました。 >・毎回node_modulesを作るのは時間がかかるから、package-lock.json に変更が無い場合はそのまま引き継ぎたい git fetchした後git diff HEAD..origin/master -- package.json で変更があるか確認出来る。 変更があった場合のみnpm installすればいい。 >・ローカルの設定、ログフォルダといった、消したくないフォルダがある ログフォルダや設定ファイルは.gitignoreしてあるはずだから、気にせず毎回git merge origin/master しても全く問題ないはず。 深く考えすぎてて、普通に手を動かしたら違和感なくデプロイ出来ました。 : [sage] 2021/03/01(月) 09:14:19.43: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 : [sage] 2021/03/01(月) 09:46:34.15:g7xhMPQT タイムゾーン : [sage] 2021/03/01(月) 11:40:37.52:vtDgs//2 ボケてました。 ありがとうございました。 : [sage] 2021/03/01(月) 17:11:01.18:Jj2WQfq1 npm outdateをCLIじゃなくてNode側から使う方法ってない? stdoutからパースするのは流石に手間で : [sage] 2021/03/01(月) 17:57:45.51:LQGHEOvf こいつを直接使えばいんじゃねーの知らんけど ttp://jump.5ch.net/?https://github.com/npm/cli/blob/latest/lib/outdated.js : [sage] 2021/03/01(月) 22:10:08.82:Jj2WQfq1 thx 試しにnode_modules/lib/outdated.jsがexportしてる関数を叩いてみたけど 内部のglobalディレクトリ参照でコケているようなエラーが出て機能しなかった npm自体がModとしてのexportするのもAPIのないEventEmitterインスタンスだし想定してなさそうだ 諦めて自前で実装しているユーザーパッケージを適当に探すよ : [sage] 2021/04/24(土) 07:20:56.16:CqGuC/ho JavaScript/TypeScriptランタイム環境「Deno 1.9」がリリース、パフォーマンス向上に寄与する機能追加など ttp://jump.5ch.net/?https://codezine.jp/article/detail/13970 : [sage] 2021/07/14(水) 17:16:26.21:x3WS9adn 質問ってここで良いの? Angularが良くわかないんだけど、例えばmd-toobarとmat-toolbarはなにが違うの? いま触っているのが全部md-xxxだけど、ググるとmat-xxxばかり package.jsonも、angularーmaterialになっているけど、ググって出てくるのは@angular/materialで、違いが分からない : [sage] 2021/07/16(金) 23:12:53.43:ku0oROTf dnsモジュールのgetServers()が初回実行時の内容キャッシュしてて使い物にならん フロントエンドスレが一応立ってるからそっちで聞いてみれば あとはWeb制作板に質問スレあったけど大分前に荒らしに乗っ取られて今はどうなってるやら : [] 2021/07/30(金) 15:13:55.95:COPEXZUK Ubuntu18.04でNode.js8.10.0を使ってるのですが、 BigIntのリテラル(例:10N)が使えません。 どうやったら使えるように出来るのでしょう? : [sage] 2021/07/30(金) 15:53:45.87:0CdNCLhG Node.jsをv12以上にする(細かいこと言うとv10の途中から使える) : [sage] 2021/07/30(金) 17:48:26.38: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 公式サイト ttp://jump.5ch.net/?https://github.com/anyenv/anyenv anyenv + macOS環境構築 ttp://jump.5ch.net/?https://qiita.com/rinpa/items/81766cd6a7b23dea9f3c anyenv は多言語向きで、rbenv, nodenv, pyenv, phpenv などを同じ使い方で、統一的に扱える。 ~/.bashrc に、下の2行を追加するだけで、各言語ごとに追加しなくても良い export PATH="$HOME/.anyenv/bin:$PATH" eval "$(anyenv init -)" : [sage] 2021/07/30(金) 18:08:58.02:n/UloM9p anyenv などを使わず、 Docker で探した方が、もっと簡単かも apt でインストールした、Node.js 8 は、アンインストールすれば良い : [sage] 2021/07/30(金) 18:19:19.46:7AkGA5GJ スクレイピングしたいんですけど何を勉強すればいいですか 不正アクセスに問われたりしないでしょうか? セキュリティ対策はどのようなことに注意すればよいでしょうか? : [sage] 2021/07/30(金) 21:07:04.19:AXk+vMk4 今ならPuppeteerか同種のヘッドレスブラウザで実装するのが楽 通常の用途であればセキュリティを気にする部分はない 不正アクセスはまたの問題だから他の質問スレで聞こう : [sage] 2021/07/31(土) 11:22:07.03:A0amfNLA 皆さんありがとうございました。 最新のLTS版Node.jsを入れたらBigIntなリテラル(N)が使える様になりました。 どのようにUbuntu18.04に最新版をインストールしたかと申しますと。 1. npmでnコマンドをインストール 2. nコマンドで最新LTS版Node.jsをインストール 3. aptでインストールしていたnodejsとnpmをアンインストール(依存も解消) です。 : [sage] 2021/07/31(土) 11:37:20.92:tQlroryC NVM, n も、知ってるけど、 各言語ごとに、ツールの使用方法を覚えるのが大変 全言語で使用方法が統一されている、anyenv, asdf が良い。 最近はどの言語も、Docker が多い : [sage] 2021/07/31(土) 12:37:39.44:A0amfNLA Node.jsでパッケージングされているプログラムだけで完結できるのに、 新しいNode.jsにする上で、 他のプログラムや仮想化に依存しなくてはいけない理由は何ですか? 仮想環境が便利だ等であれば別の話だと思うのですが。 私はC/C++、Java、Perl、JavaScript(フロント少々)使いで、 最近Node.jsに手を出し始めたのですが、 anyenvやasdfについては全く存じ上げませんでした。 それらを覚える事によって、 それらのラーニングコストを上回る恩恵を授かれるとは思いませんでした。 さんのアドバイスからまで行き着いた次第で、 シンプルに管理コストを抑えられるるのが一番だとも思っています。 : [sage] 2021/07/31(土) 16:07:39.01:nZmJDmGx 好きなもん使えばいい 俺もubuntuではaptでクソ古いNode入れてからnpmでn入れてnからlatest突っ込んでるよ : [sage] 2021/07/31(土) 17:22:45.59:23Q0KlZH ruby 君の言うことを真に受けてはいけない : [sage] 2021/07/31(土) 19:12:03.00:8Bi9zOKj Ubuntu-ltsのデフォnodejsが10.xだもんなあ オレの環境では動かない、とか言われても知らねえよ。NodeJS公式もサポートしないバージョンまでカバーできる訳ないだろうが : [sage] 2021/08/04(水) 17:08:54.13:O4k/EVJC 「Electron」と「WebView2」はどう違う? ~「Electron」の開発チームが解説 ttp://jump.5ch.net/?https://forest.watch.impress.co.jp/docs/serial/yajiuma/1342249.html : [sage] 2021/08/04(水) 19:09:25.30:qrQ4Lnon ただの翻訳(かつ雑な簡素化)記事なのにその旨の記述がない 画像も元ブログからの転載(盗用)だけどクレジット無し 大手メディアでこれって大丈夫か? : [sage] 2021/08/04(水) 19:20:49.91:L5LJfz6s 丸コピしたのとは違うと思うぞ 画像の方はアウト臭いな : [] 2021/08/24(火) 08:49:56.10:YRe/N1mJ node.jsのconsole.logのpretty printをデフォルトでやめさせる方法ないのかな? このおせっかい機能すごくいらいらするのは俺だけかな? : [sage] 2021/08/24(火) 10:42:50.46:5pgrc+RU process.stdout.write使え console.logはブラウザに寄せようと頑張ってるんやろ : [] 2021/08/24(火) 15:31:19.22:qPWgCxGJ puppeteerを使ってるプログラムをwebpackでバンドルすると、distにはChromiumが無いからエラーが出ちゃうわ よく分からん : [sage] 2021/08/24(火) 18:06:53.00:Ya+eWSVV Webサイトのコンテキストで動かしてるならDevToolsとセッション張れないから意味ないぞ ttp://jump.5ch.net/?https://github.com/puppeteer/puppeteer/blob/main/docs/api.md#working-with-chrome-extensions : [] 2021/08/28(土) 10:29:55.37:rJz23Izt nodeで作ってるapiがメモリ使用量1GBくらいでかなりベビーなんですけど ここら辺のパフォーマンスチューニングについての知見がまとまってるサイトか書籍ないですかね? : [sage] 2021/08/28(土) 14:06:05.96:TLYe8gOd ttp://jump.5ch.net/?https://www.youtube.com/watch?v=hliOMEQRqf8 : [] 2021/09/01(水) 09:26:26.45:J/+xOU5Y あざます! : [] 2021/09/06(月) 01:52:20.93:B6t4Zwws Fastifyいいな : [sage] 2021/09/15(水) 19:03:06.18:fHmj5hYp スクレイピングすると地獄へ落ちるって本当ですか? : [sage] 2021/09/15(水) 20:01:32.00:DvcCOYYc puppeteerのplaygroundでforループすれば任意の回数地獄に落ちられるぞ : [sage] 2021/09/18(土) 03:38:26.28:YPBxfQEw スクレイピングの勉強するのですが、下手するとF5アタックになるとかの法的リスクと回避法を重視している入門書ってありますか? 今の所やりたいことは、特定の市町村の5年分気温気象データを収集して自分用に加工 近所のコインランドリーの稼働データを集計して空いてる確率が高い時間帯を調べるの2つです 前者は膨大なデータを取得する必要があります 後者は10分から20分おきにアクセスすることになります : [sage] 2021/09/18(土) 04:59:36.02:ZvozewrD マルチポストすんな : [sage] 2021/09/18(土) 18:16:18.88:J85RgKD5 頭のおかしい人に以下のようなことを言われました >>基本、スクレイピングは営業妨害との戦い。 >>どの本にも、そう書いてある。 >>スクレイピングを推奨する本はない 具体的な書籍名を教えてください ch は、マルチポスト禁止! >>同じ質問を、複数のスレや外部のサイトに書いてはいけない どこでそんなルールが決まっているのでしょうか? : [sage] 2021/09/19(日) 01:37:30.15:k7BgVJB0 node初心者だけどnpmが脆弱性情報吐きまくってこわい : [sage] 2021/09/19(日) 13:46:28.11:k7BgVJB0 ググったらauditはクソ設計みたいな記事が出てきた 無視して良かったんだね いままで膨大な時間を無駄にしてた…(エД`)ハァ… : [sage] 2021/10/10(日) 13:43:36.36:rC7NAnza なんか変な場所でエラー投げられてプロセスが止まると思ったら 依存Modの一つがPromiseコンストラクタのcallback内で非同期エラー投げて止まっていた そりゃrejectしないしcatchブロックにも引っ掛からんわどうすりゃいいねん : [sage] 2021/10/10(日) 17:42:53.02:6Ldb4KuL そんな事は4,000年に一度しかないからヨシ! : [sage] 2021/10/10(日) 18:08:01.88:aEbL1282 その依存モジュールを捨てる : [sage] 2021/10/10(日) 20:04:03.47:rC7NAnza 最悪プルリク投げるかと思ってリポジトリ見たら消えてた 捨てて自分で書くわ : [] 2021/10/10(日) 20:07:36.51:zb1mAGkH お疲れさん。ちな何て言うモジュール? : [sage] 2021/10/10(日) 20:11:13.74:rC7NAnza 具体名は避けるけどProxy関連 自前のDNSBL作るのに使ってる : [sage] 2021/10/20(水) 02:52:30.75:7Ch1Hu5l スクレイピングに興味があるのですが1時間に1回の頻度のGETだけで訴えられる危険があるって本当ですか? : [sage] 2021/10/20(水) 07:42:40.20:442/7USe マルチ : [sage] 2021/10/21(木) 01:45:51.47:Z5+NocI4 17でStrcturedCloneの実装来るのか もうv8にある似たようなAPI使わなくてよくなるのな : [] 2021/10/25(月) 18:50:04.02:xfFAFxQ2 パッケージ管理ツールのnpmで公開されている「UAParser.js」は、ユーザーエージェントの判定処理を 実行するJavaScriptライブラリであり、Facebook・Microsoft・Amazon・Googleなどの超大手企業を 含む1000以上のプロジェクトで採用されています。 そんなUAParser.jsがハッカーによってハイジャックされ、LinuxおよびWindowsデバイスを対象に暗号 資産採掘やパスワードの盗難を行うトロイの木馬が仕込まれていたことが判明しました。 : [sage] 2021/10/25(月) 18:55:04.53:WgjrPOfi GIGAZINEからのコピペだろうけどちゃんと引用元URL貼っとけよ : [sage] 2021/11/17(水) 15:53:34.41:OJq8ALeu 上にもちょっとありましたが、レンタルサーバでnode.jsを動かすのって現実的じゃないもんなんですか? : [sage] 2021/11/17(水) 16:00:07.09:lSu1Xmea いや全然 上にある「レン鯖はPHP」ってレスは恐らく既に環境を構築済みで あとは実行する.phpを配置するだけのWebスペースを想定したレス : [sage] 2021/11/17(水) 16:22:49.28:sYjDCVja node.js使えるレンサバってあるの? : [sage] 2021/11/17(水) 16:34:28.88:lSu1Xmea に書いたような実質Webスペースの共有レン鯖でも端末触れる一部では使えるよ 占有型ではもちろん使えるけど今なら間違いなくVPSのほうがいい : [sage] 2021/11/17(水) 17:46:17.02:+3kxan1m 古き良きLAMP環境に拘る理由がないなら好きにしたら良い : [sage] 2021/11/17(水) 23:30:54.62:YG2/9hEL 昔ながらのFTPとかでファイル置くしかできないようなサービスならまずそんなもの導入されてないだろうな : [] 2021/11/25(木) 05:21:15.21:HW7nta/v gulp4でejsをを使用したい + 別のタスクと記述方法を統一したいのですが どうしてもエラーが解消できないのでどなたかご教授頂けませんか?(exportsにオブジェクトを突っ込む方法) 古い記述方法では動作しますが、新しい記述方法ではどうしても動作しません。 色々ググったのですが、どのサイト(英語サイトも含め)も古い記述方法で書かれており困っています。 公式も古い書き方に記述されています。(ejsだけ新しい書き方に対応していない?) ttp://jump.5ch.net/?https://www.npmjs.com/package/gulp-ejs //old gulp.task('ejs', function() { // } 新しい記述方法では、どうしても下記のエラーが解消できません。 - The following tasks did not complete - Did you forget to signal async completion? また`ps aux`で別のプロセスも走っていないことを確認しており、別のgulpタスクも全てオフにした状態で デバッグしております。 関数の引数にdoneを入れてdone()で締めたり、return除いてみたり試行錯誤していますが、数時間ハマっています。 どなたら分かる方いらっしゃたらご教授お願い致します。 //new function ejs() { return gulp .src(srcPath.ejs) .pipe(ejs()); } exports.ejs = ejs; : [sage] 2021/11/25(木) 06:59:11.02:nh0ZEMSE このエラーメッセージで検索すれば? それか、意味を考えてみれば? The following tasks did not complete Did you forget to signal async completion? もっと単純な例で、動くかどうか試してみれば? : [sage] 2021/11/25(木) 07:24:22.11:QOEXsJ22 状況全く分からんが、JSのパーサーはややおかしい?所があって、returnの後はぶった切られる。 よって、 return gulp.src(srcPath.ejs).pipe(ejs()); と改行を無くして試す事を勧める。 : [sage] 2021/11/25(木) 07:46:08.16:88pS2ZzI ttp://jump.5ch.net/?https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Lexical_grammar#automatic_semicolon_insertion : [sage] 2021/11/25(木) 08:25:42.47:QOEXsJ22 これ return と yield (と後置演算子もか?)はパーサの仕様バグだよな? 直感的じゃ無いという意味で。 : [sage] 2021/11/25(木) 08:37:10.78:acYGqwrp 仕様だよ お前の直感がおかしい : [sage] 2021/11/25(木) 08:57:16.71:QOEXsJ22 いや実際660はそうしてるだろ。俺も以前嵌った事があったし、 実際セミコロン必須の言語だとどこで切ってもいいから、660の書き方はよく見るよ。 俺はお前がおかしいと思うが。 結局これもMDNで説明するのに例外扱い("no LineTerminator here" 規則)になってるし。 統一された文法ではないよね。(=もっとましな仕様にする事も出来たし、実際他言語はそう) : [sage] 2021/11/25(木) 08:57:57.52:QOEXsJ22 すまん分かると思うが 666 は 宛 : [sage] 2021/11/25(木) 09:45:34.63:6PNOZvLH その書き方よくみるというけど 1行で書けば見やすいのにわざわざ複数行で見にくくしている意図がわからない : [sage] 2021/11/25(木) 10:02:02.58:QOEXsJ22 そりゃ、そうした方が見やすいと思う人がそうするだけだよ。 お前がそう思わなければしなければいいだけ。 ただ実際、660にある公式のコードもそうなってるだろ。 俺も個人的には横に長いコードを書くけど、一般的には縦に長いコードの方が多いと思うよ。 : [sage] 2021/11/25(木) 10:13:11.42:rnpiht7q returnの直後に改行してないからASI関係なくないか? : [sage] 2021/11/25(木) 10:19:20.71:QOEXsJ22 660の「新しい記述方法だと動かない」とされてるコードは return gulp で改行してる。 660内の公式はこれが出来ない事を知ってるから、 gulp.src(...) で改行してる。(ただしreturnはないが) : [sage] 2021/11/25(木) 10:26:17.55:6PNOZvLH それは長い行を分けて改行しているだけ 一方での人は長い行にならないのに無意味に改行しまくり : [sage] 2021/11/25(木) 10:28:27.93:rnpiht7q return gulp.src() ならreturnの後にセミコロンが自動挿入されるけど return gulp .src() ならgulpの後にセミコロンは自動挿入されないでしょ それよりfunction ejs(){}って名前がダメなんじゃないの? .pipe(ejs())で再帰になってる : [sage] 2021/11/25(木) 10:36:21.11:QOEXsJ22 長さではなく、意味で切るんだよ。 > return gulp > .src() > ならgulpの後にセミコロンは自動挿入されないでしょ されて gulp が返されるはずだぞ。 : [sage] 2021/11/25(木) 10:42:13.14:6PNOZvLH 意味で切るならgulpと.src()の間で改行を入れてるのは明らかにおかしい 無意味な改行だ : [sage] 2021/11/25(木) 10:42:35.39:QOEXsJ22 すまん、674は間違い。 試してみたところ、確かに挿入されないようだ。 : [sage] 2021/11/25(木) 11:42:21.71:QOEXsJ22 相手するだけ無駄っぽいが、そういうのは物によるんだよ。 そうした方が見やすいと思う奴がそうするだけ。 return ウンコ製造器675号 .src(ケーキ) .pipe(胃) .pipe(小腸); .pipe(大腸); なら、675によってケーキがウンコに変わるのが見やすくなると思う奴もいるだろ。 (詳しくないが)gulpの場合は基本はフィルタで型が変わらないし、出発点はソースファイルに決まってるから、 return gulp.src(ソース) .pipe(フィルタ1) .pipe(フィルタ2) のケースが多いとは思うけど。 ついでに言っておくと、お前JSによくいる、やたら文法に拘る奴なら、止めた方がいい。 それだと全く進歩しないので。 上記の通り、まあどちらもいるわな、程度で進めていかないと、上達しない。 どちらが正しいとか、そういう問題ではない。 どうにもJS初心者は「改行を極める」「セミコロンを極める」とかになりがちのようで、よろしくない。 : [sage] 2021/11/25(木) 12:57:12.37:K4FLN1Dn んじゃ俺は括弧の後に半角スペースを入れるのを極めるわ。 : [sage] 2021/11/25(木) 13:45:45.44:R4fLO2Lj 必死過ぎて笑えるw : [sage] 2021/11/25(木) 14:09:48.85:reZpBJt7 珍しく伸びてんなと思ったらこれだよ : [sage] 2021/11/25(木) 19:42:13.27:b7JhAcnH .NET Standard が世界の中心と考えてる人でしょ 別スレで見た : [sage] 2021/11/25(木) 21:14:35.40:QOEXsJ22 ゆとりにはそれがお似合いだね : [] 2021/11/25(木) 22:13:54.29:HW7nta/v 610です。 仕事でレス遅くなりました。 ありがとうございます! このコメントからピンときて修正したら無事に動作しました。 超初歩的なミスでした、、 こちらの書き方は関数の中にejs(gulp-ejsオブジェクト)を書いても動作しましたが gulp.task('ejs', function() { } こちらでは関数に同じ関数入れたらまだタスク終わってないよと、動作しませんよね。(気づけば当たり前なのですが、、) function ejs() { } お騒がせしました。コメント頂いた方もありがとうございました! : [] 2021/11/25(木) 22:25:35.12:HW7nta/v 誤 610です。 = > 正 660です。 : [sage] 2021/11/25(木) 23:27:35.30:nh0ZEMSE 漏れは、Ruby でも、パーサーの誤解釈を避けるため、 . を行末に置く a. b( ). c( ) : [sage] 2021/11/26(金) 01:34:21.64:KdVwfKAT なんで Ruby が出てきた : [] 2021/11/26(金) 22:15:56.74:FIwAqG/H スクリプト系は改行も終端になって駄目ね : [sage] 2021/11/26(金) 23:57:17.12:MbvsChzk JavaScriptで駄目なのはreturnのみの行の時だけだよ return a .b() は駄目だけどこう書く人はいないから問題は起きることはない return a .b() なら大丈夫 : [sage] 2021/11/27(土) 09:09:57.67:kX7QbhiL そういうのはコーディング時にいちいち気にするよりlinterでチェックだな。 : [sage] 2021/11/27(土) 09:24:44.31:LVgG7qhW それを知ってないと嵌るだけの無駄仕様だよ。 セミコロンなしの筆頭だったAirbnbも諦めたようだし。 > ASI contains a few eccentric behaviors, though, and your code will break if JavaScript misinterprets your line break. These rules will become more complicated as new features become a part of JavaScript. Explicitly terminating your statements and configuring your linter to catch missing semicolons will help prevent you from encountering issues. > ttp://jump.5ch.net/?https://github.com/airbnb/javascript#semicolons 他にセミコロンなしの有名ルール勢ってあったっけ? return 'qwerty' +'asdfgh'; とは書きたくなるだろ。書きたいように書けないのはよろしくないよ。今風ではないね。 セミコロン書くルールならASIなんて無い方がマシだし。 : [sage] 2021/11/27(土) 09:32:19.66:MtgsfYs/ 書き方にこだわりがあるならそうではない書き方と比べて◯◯の利点があると言わないと他人の理解は得られにくい。 好みだけの問題ならスクリプトの仕様に従うしかない。 : [sage] 2021/11/27(土) 09:36:27.04:TUbuKQsw 自分はなりませんねとしか : [sage] 2021/11/27(土) 09:41:13.68:LVgG7qhW 俺向けではないと思うが、 return 'qwerty' +'asdfgh'; の利点は見れば分かるとおり、インデントを揃えられる事だよ。 タグの方が分かりやすいかもしれんが一々引っかかると面倒なので止めただけ。 return '<div>' +'<span>'+ +'</span>'+ +'</div>'; だと最初のdivのインデントがずれるだろ。 まあ言うほどではないし、実際俺はこの書き方をしているが、出来れば return の後に改行したいね。 : [sage] 2021/11/27(土) 09:42:13.87:LVgG7qhW すまん693内681は : [sage] 2021/11/27(土) 10:25:26.66:wIEauZJC お前ら何も考えずにPrettier使え それが今のデファクトだ : [sage] 2021/11/27(土) 11:22:05.56:xgA8vuBV Airbnbがセミコロンなしの筆頭って頭腐りすぎたろ git時代に歴史改ざんしてもすぐにバレる 2012年にセミコロンの章が初めて書かれたときからAirbnbはセミコロン派だ ttp://jump.5ch.net/?https://github.com/airbnb/javascript/blob/cab510342f93791a7487d16258d06ff73edb4507/README.md#semicolons : [sage] 2021/11/27(土) 11:35:18.29:LVgG7qhW ならAirbnbというのは俺の勘違いだな。 俺がJSを始めた2013-14頃、有名なコーディングルールが4つほどあって、Airbnbが一番トンデモだった(が、人気は一番という話だった) その中にはセミコロンを打つな、というルールもあった。誰か思えてないかね? なお俺はgoogleのルールが一番マシっぽいのでそれを参考にした。(こちらはセミコロンあり) : [] 2021/11/27(土) 11:43:32.92:WAiK9igD どこだか覚えてないけど、確かにどっかでセミコロン打たないで、短文を1行に書くときだけセミコロン使うてなの見たか聞いたりした記憶ある。 : [sage] 2021/11/27(土) 12:14:33.21:LVgG7qhW 一応自分でも再確認しているところだが、 > Always use semicolons. (google) > Use them. Never rely on ASI. (jQuery) > あなたからセミコロンを奪おうとする反抗的な軍隊があるようです。でも確かに私達の伝統的な文化はまだ元気に生き残っています。だからコミュニティに従って、セミコロンを使いなさい!(Node) > ttp://jump.5ch.net/?https://qiita.com/takeharu/items/dee0972e5f39bfd4d7c8 npmのもかなりトンデモだった記憶があり、改めて確認すると、打つな派だ。 > ;(x || y).performAction() > ;[a, b, c].forEach(performAction) > for (var i = 0; i < 10; i ++) { > switch (state) { > case 'begin': start(); continue > case 'end': finish(); break > default: throw new Error('unknown state') > } > end() > } > ttp://jump.5ch.net/?https://www.w3resource.com/npm/npm-coding-style.php となると俺の勘違いはnpmという事になるが、npm==Nodeじゃねえのか?という疑問は発生する。Nodeはnpmからのフォークか? 多分俺が当時見たのは Airbnb, npm, jQuery, googleだと思う。 : [sage] 2021/11/27(土) 12:30:57.21:i1Pzoh/C NodeはRyan Dahlが始めてセミコロンあり npmはIsaac Z. Schlueterが始めてセミコロンなし IsaacはNodeの2代目リーダーだけどNodeではセミコロンを書いてた : [sage] 2021/11/27(土) 12:54:15.05:XFyMXPdv セミコロンレスの強硬派として有名なのはStandard カスタマイズも許さない ttp://jump.5ch.net/?https://github.com/standard/standard : [sage] 2021/11/27(土) 13:40:28.79:LVgG7qhW 初コミット2015年なのにstandardと主張して他と違うルールとか、頭おかしいな。 とはいえ議論する時間が一番無駄というのは同意だが。 多分セミコロン無し言語出身者用のルールが一つは必要で、 それに向けてのstandard命名なのだろうけど、なんだかね。 : [sage] 2021/11/27(土) 13:49:34.28:MtgsfYs/ 文字列を「+」で繋げるのもうやめようよ。見にくいよ。 「エ」(バッククォート)で括ればいいじゃん : [sage] 2021/11/27(土) 13:51:01.70:NSUO7OXD このルール入れろ ttp://jump.5ch.net/?https://eslint.org/docs/rules/prefer-template : [sage] 2021/11/28(日) 09:28:43.85:yQx61O6E javascriptならセミコロン無い方がいいかなぁ : [sage] 2021/12/14(火) 18:36:52.92:R85W1UAs async/awaitってawaitしかしないから無駄じゃね? : [sage] 2021/12/26(日) 08:00:15.12:iIGCgNg3 Promise, async/await で無駄なのは、デタラメ解説の数々、ほぼ全滅だろ、酷い惨状だねー。 : [sage] 2021/12/26(日) 09:04:50.48:S+a9i6vw それを言ったらWeb系言語は全部デタラメ解説で駄目だろ 初心者が情報公開の練習として解説を書くからそうなる : [sage] 2021/12/26(日) 10:12:00.53:6ScHvZpk それはしゃーない、正確さにこだわりすぎて萎縮する方がデメリットが大きい 読む方が気を付けて取捨選択するしかない : [sage] 2021/12/26(日) 10:19:35.71:jog3O69G c++とかjavaとか含めて進化してる技術の古い解説はことごとくゴミ化してるし一緒だわな : [sage] 2021/12/26(日) 11:04:07.34:4h95DB/2 classは非推奨にして欲しい。 中途半端で使いにくい。 : [sage] 2021/12/26(日) 13:04:22.56:PmcDL+gd どういう所? : [sage] 2021/12/26(日) 13:40:10.35:S+a9i6vw 同意だが、C#はかなりマシ 一般的に上級者は初心者向けの説明なんて書きたくないものだが、 プログラミング自体について語りたい連中も多少はおり、そいつらを上手く取り込んでる : [sage] 2021/12/26(日) 17:59:34.28:4h95DB/2 上っ面だけのクラスベース。 内容はプロトタイプのまま。 : [sage] 2021/12/26(日) 18:08:44.18:PnBrsUGe 上っ面といってもそこで整合とれていて内部の問題が表に現れないなら別に問題ないと思うが。 まぁ、中途半端というなら何かそういう部分が見えているということなんだろうが。 : [sage] 2021/12/26(日) 18:30:25.89:oeLmweY9 定期的に呟いてる人だから気にせんでいいよ : [sage] 2021/12/26(日) 18:50:24.76:PmcDL+gd オブジェクト指向的センスが無いと言う事だね 今の時代、両方出来ないとプロだと厳しいと思うがね : [sage] 2021/12/26(日) 18:55:49.66:S+a9i6vw プロトタイプの方が表現出来る空間が広くて、実際にただの糖衣構文でクラスを実装出来てるだけだろ クラスで閉じて使ってる限りプロトタイプの側面は見えないはずだが 混ぜて使うのってありだっけ?(class宣言した物にgetPrototypeOfとか) class構文の時にどうプロトタイプが配置されるか仕様で確定してないと駄目だと思うが、これってしてるのか? : [sage] 2021/12/26(日) 19:35:46.48:kUhTwtcg GoやRustなんかの新しい言語がクラスベースのオブジェクト指向を採用しないご時世 時代遅れとなったC++やJava風のクラス構文を導入する必要はなかったわな TC39的にはES4で入れ損なったから悲願だったんだろうけど : [sage] 2021/12/26(日) 20:25:20.58:M+F+5/6j プロトタイプベースのオブジェクト指向ってIDEや静的型付けと相性悪いのでは : [sage] 2021/12/26(日) 20:48:01.50:S+a9i6vw 仮にそうだとしても、IDEの都合を優先してプログラミング言語を簡素化するのは完全に本末転倒だろ 初心者専用のオモチャが欲しければScratchで満足しとけ : [sage] 2021/12/26(日) 20:54:53.04:M+F+5/6j 既存との互換を保ったまま機能追加されてるわけだから言語自体は簡素化されたのてはなく複雑化されたのでは それはさておき従来の機能が使えなくなるわけでもなく何が不満なのかわからない : [sage] 2021/12/26(日) 21:02:39.16:4h95DB/2 してない。 だから細かい設定が解りづらい。 : [sage] 2021/12/26(日) 21:18:20.64:S+a9i6vw 糖衣構文を導入した分言語は複雑化してるし、IDEも余計に対応する必要がある。 IDEを優先するなら何もしないのが最善。 (もちろん仕様を削れるのが最善だが、JSの場合はこれはかなり無理なので) 仕様で確定してないのなら、混ぜて使う事は禁止だし、 クラスで閉じて使う分にはプロトタイプベースは見えないから問題ないだろ。 何を問題視してる? : [sage] 2021/12/26(日) 21:26:19.15:PIvfFszt ECMAScriptの仕様書も読んだことない低脳が堂々と嘘を書くなよ ES2020の14.6.12 : [sage] 2021/12/26(日) 21:33:51.63:PIvfFszt 自己レス「ES2020の14.6.13」の書き間違い : [sage] 2021/12/26(日) 22:43:28.35:M+F+5/6j そもそもプロトタイプベースの方が静的解析難しいからちゃんと補完できるIDE作るの難しいと思うよ 例えばプロトタイプベースでtypescript作れるかというと結局クラス宣言的な物を導入せざるを得ないと思う 構文解析なんかは大して難しい話ではない : [sage] 2021/12/26(日) 22:59:58.91:vgGpFQt6 実際にTypeScriptはinterface導入してるし何も問題ないだろ : [sage] 2021/12/26(日) 23:27:54.98:S+a9i6vw 最終的に何が言いたいのかさっぱり分からんが、既に言ったとおり、 IDEの都合でプログラミング言語の仕様を決めるものではない。それは逆だ。 プロトタイプベースではIDEを構成出来ないからクラスベースを導入した、と考えてるのなら、上記の通り。 IDEの為にプロトタイプベースを廃止してクラスベースに一本化すべき、でも上記の通りだし、JSでは無理。 IDEの為にクラス構文なんてそもそも導入すべきではなかった、と考えてるのなら、それもありだし個人的には賛成だが、 一般論としては現在の、メジャー言語でほぼクラス導入済みの状況で、JSだけ不採用も、メジャー言語としては難しい。 GoやRustは今も今後ともマイナー言語でしかないし、勝手にやってろでしかない。 静的解析自体はクラスの方が簡単だろうけど、だからどうしたでしかない。 実行エンジンはあるのだから、実装難易度の上限は実行エンジンを実装する程度でしかなく、出来る範囲だ。 最悪、実行エンジンをそのままコールして結果を得る事も出来る。Flycheckとかそういう構造のように見えるけど。 ちなみにTSが型を導入したのも、IDEを作るためではなく、 プログラマが型を明示的に示す事によって、間抜けなエラーを静的に検出するためだぞ。 そこにIDEが勝手に乗っかっただけであって、IDEが無くとも型の導入自体は意味も効果もある。 型無し言語出身者は型をIDEでの補完をするための物だと勘違いしてるが、そうじゃない。 : [sage] 2021/12/27(月) 00:11:53.01:Btn3kp2t 言いたかったこととしてはプロトタイプベースがクラスベースの機能包含しているとしても 静的解析のこと考えるとプロトタイプベースが必ずしもクラスベースのスーパーセットではないよねということ 実行エンジンを実装してもあらゆるパスが評価できるわけでないので宣言的記法の方に軍配が上がると思うが 実行エンジン内包する方式で宣言的記法と同等の静的解析できてる例ってあるの? flycheckってemacsのパッケージのことだと思うけどあれも静的解析走らせてるだけで実際にJS評価してるわけじゃないでしょ? IDEのためだけではないというのはその通りで、途中から略して書いてしまっているが ではIDEや静的解析といっている : [sage] 2021/12/27(月) 05:27:18.08:5b2Vj92V > 静的解析のこと考えるとプロトタイプベースが必ずしもクラスベースのスーパーセットではないよねということ IDEの「実装」をプログラミング言語の「仕様」比較(スーパーセットかどうか)に含めるのがおかしい。 それは「○○は△△のスーパーセットではない。なぜなら『僕が』それを『実装』出来ないから」と言ってるのと同じだろ。 IDEは開発をサポートする道具であり、サポート対象はプログラミング言語だ。 よって、仕様上どんなに構文解釈が難しかろうが、必要ならやるしかないし、それだけだよ。 上下関係で言えばプログラミング言語の『仕様』が完全に上であって、 IDEの『実装』の都合をプログラミング言語側に押しつける事は出来ない。 > 静的解析走らせてるだけで実際にJS評価してるわけじゃないでしょ? 俺が使ったのはGoだけど、見た目は実際にコンパイルを走らせてそれをアノテートしてただけ。 でも確かにこれが一番生産性が高いんだよ。 当たり前だが、コンパイラはエラー時には何行目の何文字目でこけた、という情報を持ってる。 だから静的解析が目的ではなく、ソースコード作成時にエラーを表示する事が目的なら、これでいいんだよ。 最大のメリットは構文解釈を自前で実装する必要がない事。 構文解釈機の再開発をやめ、本体コンパイラのエラー情報をより詳細に出す事にリソースを突っ込み、 IDE側はその詳しいエラー情報を解釈してアノテートするだけに徹する。 これで言語側の仕様変更に自動的に追従するようになる。 IDEの数だけ構文解釈機を再開発するのは手段が目的化してる。 > 実行エンジン内包する方式で宣言的記法と同等の静的解析できてる例ってあるの? Flycheckは外部から呼んでるだけ。でもそれでコンパイラが吐くエラー(=静的エラー)は全て検出出来る。 しかも自前の実装もなしだから、最も生産性が高い。 自前の構文解釈機でコンパイラ/ビルドシステム以上のエラーを検出する気なら、 それはIDEではなくリンターと呼ぶべきだが、 それが出来るのなら、コンパイラ/ビルドシステムにそのリンターを内包して、 IDEはそのエラーを表示する事に徹するのが最も生産性が高い。 IDEで構文解釈するのではなく、エラーを出来るだけ早い段階で検出して修正するのが目的だから。 : [sage] 2021/12/27(月) 08:32:17.24:Btn3kp2t > IDEの『実装』の都合をプログラミング言語側に押しつける事は出来ない。 なぜそうあるべきなのですか? 近年の言語はサードパーティーのツール含めたエコシステム全体で生産性をいかに高めるかという観点で設計されることも多いと思うのですが また、あなたの言う実行エンジンとは静的解析器の意味で実際にJSをevalするものではないということですね? なぜか構文解析の話になっていますが意図してたのはintellisenseのような意味解析が必要な機能です プロトタイプベースの記法では解析のためにコードの実行パスを追いかけプロトタイプの設定箇所を検出しなければならないのに対して 宣言的記法であればスコープ内のクラス宣言を見ればだいたい事足りるので実装難易度は大幅に異なるかと : [] 2021/12/27(月) 09:13:46.85:mFj7RPUl 今時プロトタイプベースがぁ、って言ってるのが時代遅れじゃねーの。 クラスベースじゃないからってRustやGoを出してるがそれらはプロトタイプベースですらないわけで。 : [sage] 2021/12/27(月) 09:41:04.48:VqPkBZyA はクラスベースを時代遅れと書いたんだが ぶっちゃけオブジェクト指向が過去のものになってきてるのみんな分かってるだろ : [sage] 2021/12/27(月) 10:22:30.58:5b2Vj92V > 近年の言語はサードパーティーのツール含めたエコシステム全体で生産性をいかに高めるかという観点で設計されることも多いと思うのですが 「多い」というのならまず具体的に名前を複数挙げてみろ。 出来なければそれは君の妄想だね。 > また、あなたの言う実行エンジンとは静的解析器の意味で実際にJSをevalするものではないということですね? 違うぞ。それは今の話に関係ない。(どっちでもいい) > 意図してたのはintellisenseのような意味解析が必要な機能です だから何?これも君の考えが間違ってる。 flycheckのやり方でも原理的にインテリセンスは出来るんだよ。 インテリセンスで出なかったキーワードだとコンパイルエラーになるのなら、 仮にコンパイラが無限に速ければ、ソース内の全キーワードで試せば、コンパイルが通るキーワードのリストは得られる。 実際こんな事をしてる物はないと思うが、構文解釈で100%絞る必要なんて無くて、 候補が数個程度なら全部試してエラーが出なかった物を出す程度でも十分実用的なんだよ。 今時emacsでもインテリセンスするようだから、そんなにIDEが気になるのなら、彼等のアプローチを確認してみるといいよ。 全言語向けに自前でやってる事なんてないと思うよ。 プロトタイプを自分で追うのが技術的に無理なら、evalさせてgetPrototypeOfやinstanceofを使って追えばいいだけ。 自前の構文解釈器でソースからデータツリー構築をする気だからおかしくなる。 それはevalすれば実行エンジン内に構築されるものでしかないのだから、完全に再開発だろ。 eval出来る環境があり、それが一番近道なら、やればいいだけ。 君は多分「生産性」を勘違いしてる。 むしろ再開発しすぎてるし。 現状どうなってるのか知らないのだけど、メジャーなIDE、 例えばVSCodeとかだとクラスベースならインテリセンス出来るが、プロトタイプベースだと無理とかなのか? 誰か使ってたら教えてくれ。 : [sage] 2021/12/27(月) 10:51:32.02:gEDfakwV ラクラスベース ○クラス構文 クラス構文で書いてもプロトタイプベースなのは変わらん : [] 2021/12/27(月) 11:21:14.15:mFj7RPUl 確かにクラスベースがってよりオブジェクト指向が時代遅れって感じだね。 JS自体は関数プログラミングもいける。 : [sage] 2021/12/27(月) 11:22:05.04:lxgQYw9b 言語仕様も分かってないIDEも使ってない部外者の素人同士が長文レスバって地獄だな : [sage] 2021/12/27(月) 11:54:45.10:Btn3kp2t > 「多い」というのならまず具体的に名前を複数挙げてみろ。 例えばgolangやrustはコアチームがツール開発に積極的ですね ツールのチームがコア言語に対してフィードバックしていたりする > eval出来る環境があり、それが一番近道なら、やればいいだけ。 "構文解釈機" という言葉を使っているから静的解析を意図してるのかと思ったけど動的解析も含んで言っていたのね それで実用に耐えうる速度と精度が実現できるならそういうアプローチもありかもね それから別にIDEが自前で静的解析器を開発すべきなんて主張はしてないから藁人形論法はやめてくれ オブジェクト指向というか継承が忌避されてる気はする : [sage] 2021/12/27(月) 12:21:31.31:VwNgBMvN オブジェクト指向ならではの筆頭が継承だから継承が忌避されてる=オブジェクト指向が忌避されてるってことよ OOPLが提供していた継承以外の特性の多く(カプセル化など)は抽象データ型から来ていてそれは時代遅れになってないし忌避されてもいない : [sage] 2021/12/27(月) 13:11:44.45:+2NyFcdP クラスの定義だけど、 classとfunctionを混在した書き方でも問題ないの? : [sage] 2021/12/27(月) 13:40:18.86:Uq9DqbRx 混在した書き方っての次第だが class A {} A.prototype.x = () => {} a = new A() a.x() こんなのは当たり前に動くぞ つかまずは自分で試せよw JSなんかブラウザあれば動かせるんだからさー : [sage] 2021/12/27(月) 15:00:45.57:5b2Vj92V > 例えばgolangやrustはコアチームがツール開発に積極的ですね それで、それらの言語のどの仕様がIDEの都合で採用されたものなの? > 藁人形論法はやめてくれ なら最初から分かるように主張しろ。 何が言いたいか分からないからエスパーして複数挙げてみただけ。 馬鹿は無視してきっちり自分の意見を書ききれ。 3行しか読めない馬鹿はプログラミングなんてどうやっても出来ない。 MDNその他のリファレンス見りゃ分かるが、そんな世界じゃない。 5ch程度の文にすら手こずるようではどだい無理だよ。 解釈が動的か静的かは意味無い。 出来るだけ早い段階でエラーを検出して修正したいだけであって、それが出来れば何だっていいんだよ。 その手段の一つが静的解析でソース作成時にエラーを表示する事であって。 でも、エラー表示だけなら、コンパイラやevalにぶち込めば出来るし、それをやってるっぽいのがflycheck。 構文解釈器を自前で作るとしても、クラス構文でもプロトタイプ構文でも、大して難易度は変わらない気もするが。 実際に問題になるのは、構文解釈そのもの、具体的にはJS的な様々な書き方でも問題なく動くパーサの構成だろ。 構文解釈後の親class/プロトタイプ追跡なんて辿ればいいだけだからアホでも出来る。 それで今時のIDEで実際どうなのか聞いたんだよ。 もしプロトタイプ構文ではインテリセンスが動かないのなら、何か理由はあるのだろうけど。 継承が忌避されてるのは、JAVAでは関数ポインタが使えず、同様の事をするためには継承をこねくり回すしかなくて、 それの残骸がデザインパターンなのだが、 結果、継承すべきでない局面での継承で酷い事になってるからだよ。 でも、継承すべき場所では継承した方がよくて、全部捨ててるGoはいちいち全部書かないといけないのが糞。 あれは1周目はまだしも、2周目以降でそのコピペされたソースにメンテコストがかかるから、先すぼみになると予想してる。 Rustはやってないから知らん。 : [sage] 2021/12/27(月) 15:36:34.22:KDGmbGA4 何言ってるか分からない相手にエスパーして反論って藁人形そのもので完全に異常者 : [sage] 2021/12/27(月) 15:55:56.69:h2/Ma5NI いい加減スレチだから他所でやってもらえんかね このスレ伸ばすにしてもnodeにScheduling APIが入ったとか普通にネタあるだろ : [sage] 2021/12/27(月) 16:04:01.18:XkNPDe9x 最近アツいサーバサイドJSはnodeよりもdenoよりもCloudflare Workers : [sage] 2021/12/27(月) 16:21:39.89:U0LFk7o9 denoって全然使われてないの? : [sage] 2021/12/27(月) 16:28:54.26:XkNPDe9x denoは苦戦してるみたいだねー それでexpressなどnode用のライブラリが動くように互換性を高める方針になった でもそれならnode使い続ければいいやってなりそう : [] 2022/01/05(水) 00:01:04.66:XksPZRYQ puppeteerを使って投票サイトの投票を自動化したいのだけど、 実行してもエラーを起こさず無反応なんだよね Headless Recorerを使ってるからHTML部分の間違いはないと思うのだけど、 UserAgent以外で何か対策ないっすかね : [sage] 2022/01/05(水) 00:22:23.97:n516+jFB いくらでも試すことはあるけど悪事の片棒を担ぎそうで怖いな 一般論として言えるのはpuppeteerでも普通にWebページのコンテキストからDOM APIを叩ける : [] 2022/01/05(水) 00:33:19.61:XksPZRYQ んじゃ、逆にWEBサイトを作る側はどんな対策をしているのでしょうか? : [sage] 2022/01/05(水) 10:54:49.76:4mwV9n2W reCAPTCHA使ってんじゃない? : [] 2022/01/05(水) 15:02:25.17:XksPZRYQ 使ってるところは諦めてるんだけど、使ってないところはどうやってるのかな~と思って UserAgentをガラケーにしてみたり、プレステにしても無反応なんだよね : [sage] 2022/01/05(水) 15:47:16.38:w42D9Ab/ 手動で操作した時のリクエストヘッダーの中身を解析して 間違いなく妥当なリクエストが投げられてるのが大前提 あとは“how to detect headless browser”でググるといいよ : [sage] 2022/01/06(木) 22:16:32.70:vwKSLmqQ npmがぶっ壊れたらどうすればいいですかapt でuninstall installしても治りません : [sage] 2022/01/10(月) 00:21:58.20:MINWORCd スレ立てるまでもない質問はここで 158匹目 ttps://mevius.5ch.net/test/read.cgi/tech/1635193843/538 ここに、YouTube で有名な、雑食系エンジニア・KENTA のサロンの、 Ruby on Rails 初心者用コースの内容を書いておいた 基本的に、Rails以外のフレームワークは、シェアが少ないのでおすすめしない。 学習環境も揃わないので、無理 Railsでは、Railsチュートリアル・Railsガイド・ 黒田努の3冊の本・パーフェクト Ruby on Rails・Ruby on Rails 6 エンジニア養成読本とか、 Rubyでは、改訂2版 パーフェクトRuby・改訂2版 Ruby逆引きハンドブックなどの教科書が揃っている これほど、良い教科書が揃っているフレームワークはない! Laravel のシェアは少しあるけど、KENTAがPHP は一生やる必要がないと言ったので、 PHP自体がオワコンになってしまったw 日本のウェブ開発の将来は、ほぼKENTAが決めている。 Scala を滅ぼしたのも、KENTA
凡例:
レス番
100 (赤) → 2つ以上レスが付いている
100 (紫) → 1つ以上レスが付いている
名前
名無しさん (青) → sage のレス
名無しさん (緑) → age のレス
ID
ID:xxxxxxx (赤) → 発言が3つ以上のID
ID:xxxxxxx (青) → 発言が2つ以上のID
このページは2ch勢いランキング が作成したキャッシュです。元のページはこちら 。削除についてはこちら 。