X



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

0001デフォルトの名無しさん
垢版 |
2018/02/13(火) 22:21:33.91ID:moEhrPrC
pythonやrubyやPHPと同じ土俵でjavascriptが使えるようになりました。
サーバサイドjavascriptについて語りましょう。

node.js - googleが開発したV8エンジン上で実行できる処理系
http://nodejs.org/
ayo.js - node.js 互換で Rod の影響からの脱却を目指す処理系
https://github.com/ayojs/ayo
Nashorn - Java8 からRhinoに代わって同梱されているJavaScriptエンジン
http://www.oracle.com/webfolder/technetwork/jp/javamagazine/Java-JA17-Nashorn.pdf

ayo.js の経緯
https://web.archive.org/web/20170821212745/https://github.com/nodejs/TSC/issues/310
javascriptはrubyと比較してもかなり速い
http://shootout.alioth.debian.org/u32/benchmark.php?test=all&;lang=v8&lang2=yarv
基礎から学ぶNode.js
http://gihyo.jp/dev/serial/01/nodejs
node.jsの概要とアプリケーション開発の準備
http://gihyo.jp/dev/serial/01/realtimeweb/0002

前スレ
【node.js】サーバサイドjavascript 4【io.js】
http://mevius.5ch.net/test/read.cgi/tech/1460359714/
【node.js】サーバサイドjavascript 3【io.js】
http://echo.2ch.net/test/read.cgi/tech/1419673207/
【node.js】サーバサイドjavascript 2【Rhino】
http://peace.2ch.net/test/read.cgi/tech/1358937029/
【node.js】サーバサイドjavascript【Rhino】
http://toro.2ch.net/test/read.cgi/tech/1310087535/
0317デフォルトの名無しさん
垢版 |
2019/09/07(土) 13:12:16.63ID: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を繰り返してくれるだけなので
どうしても時間がかかってしまいます。

上書き保存をし、ブラウザを更新しただけで修正内容が反映される様にするにはどうすればいいでしょうか?
0318デフォルトの名無しさん
垢版 |
2019/09/07(土) 13:39:38.96ID:FOx1f63/
nodemonってことはwebpackは起動してない?
hot module replacement(HMR)使うならdockerの中だろうとwebpack通さないと
あとHMRちゃんと設定できてればブラウザのリロードしなくてもファイル保存しただけで変更が反映されるよ

つか画面周りの開発でdocker使っていいことあるか?
0319デフォルトの名無しさん
垢版 |
2019/10/19(土) 18:31:46.54ID:VwkXsBh7
初心者ですがWindowsでnode.jsを使いたいのですが
一人で開発する分にはnvm-windowsとnode.jsとvscodeぐらいを入れとけばやれますか?
作ったアプリを配布する際にパッケージの依存関係を何かに表さなければならないと思うのですが、どう抽出して何に記述しますか?
あとBrowserifyって額面どおりのことを本当にやれるんですか?
(たとえばローカルファイルにアクセスしたりソケット通信するようなJavaScriptコードについて
0320デフォルトの名無しさん
垢版 |
2019/10/19(土) 20:52:32.38ID:yv9dYCWj
ガチの初心者かい
的外れなこと聞くよりnpmとかyarnのチュートリアル探してやった方が意味があるぞ
0321デフォルトの名無しさん
垢版 |
2019/10/20(日) 10:50:05.69ID:Xl2t0ZNf
ツールを検討するレベルにもまだ達していないな
0322デフォルトの名無しさん
垢版 |
2019/10/20(日) 12:17:01.14ID:ADDbXmaX
Node.js, VSCode, Babel, Webpack。
他には、VSCode の拡張機能とか、yarn, gulp

タスクランナーは、gulp, npm scripts

PC 内のファイルにアクセスするなら、Electron とか。
VSCode も、Electron 製
0323デフォルトの名無しさん
垢版 |
2019/10/20(日) 12:19:52.71ID:FREy/Z7W
なるほどPC内のファイルにアクセスするためのツールなんですね、Electronって。
0324デフォルトの名無しさん
垢版 |
2019/10/20(日) 12:49:58.20ID:TAO9/plN
ファイルにアクセスするだけならnode.js単体でもできる
electronはブラウザとnode.jsを統合したものでHTMLベースのGUIを持ちつつファイルやネットワークを自在に扱える
つまりデスクトップアプリのプラットフォーム
0325デフォルトの名無しさん
垢版 |
2019/10/20(日) 13:14:43.74ID:Df2Q09El
えっ、でも>>322が…
0327322
垢版 |
2019/10/20(日) 23:37:18.68ID:ADDbXmaX
Electron は、サーバー側・GUI の両方を、1つにまとめたもの!

V8 は、JavaScript の実行環境

サーバー側は、Node.js + V8。
GUI はブラウザで、Chromium + V8

おおー!
V8 が重複しているから、これを1つにしたら効率的!

つまり、Electron = Node.js + Chromium + V8

だから、Electron アプリは、300MB もあるw
0329デフォルトの名無しさん
垢版 |
2019/10/21(月) 02:36:24.31ID:W7vxtZcq
>>327
なんで>>322みたいなウソつくの?ねぇ!?
0330デフォルトの名無しさん
垢版 |
2019/10/25(金) 02:49:42.38ID:rOQwe8UN
この変な改行は見覚えあるな
いつもWeb板の質問スレでめちゃくちゃなレスしてるやつかな
0333デフォルトの名無しさん
垢版 |
2019/10/25(金) 23:35:33.90ID:9ZGj0mXw
糖質の見本みたいなやつ。医学発展のために献体すべき。
0334デフォルトの名無しさん
垢版 |
2019/10/26(土) 10:05:13.04ID:e6NVGnmw
糖合質調症
脳が糖で溶ける
0335デフォルトの名無しさん
垢版 |
2019/11/03(日) 20:01:18.21ID:v1wfX+lc
Nodeって、なんでこんなに広がったんだろうな?
たかだかjs如きが
0337デフォルトの名無しさん
垢版 |
2019/11/03(日) 23:25:52.66ID:ungx1UoX
たかがJSと蔑まれる要因だった高過ぎる自由度が、ベストプラクティスの集積のお陰ですべてプラスに転化してしまったんだ
0338デフォルトの名無しさん
垢版 |
2019/11/04(月) 00:16:03.94ID:U87Emrnv
古くはunixやcもたかがだしpcもwindowsもたかがだし
たかがtcp/ip、たかがjava、たかがlinux、そんなばっかだぞ
0339デフォルトの名無しさん
垢版 |
2019/11/04(月) 02:10:19.67ID: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"));
0340デフォルトの名無しさん
垢版 |
2019/11/04(月) 02:25:09.17ID:ku/TWmjC
少なくともブラウザ上で実質唯一の選択肢だったのがブラウザ以外で実用的になったわけだし, 広がる道理としては十分だと思うけどな
0343デフォルトの名無しさん
垢版 |
2019/11/04(月) 10:32:03.99ID:PlunRwPx
>>342
ありがとうございます!
CodePageを65001にしても変わらずrun.js実行で文字化けの結果が返ってきます・・・
0346デフォルトの名無しさん
垢版 |
2019/11/04(月) 11:40:31.03ID:PlunRwPx
>>345
ありがとうございました!最後の行を置き換えたら文字化けせずに表示されました
ずっとハマってたのでちゃんとできて泣きそう聞いてよかった
0347デフォルトの名無しさん
垢版 |
2019/11/04(月) 13:20:30.25ID:Zu03xGz4
クリップボード内の複数行文字列の、各行の先頭・末尾から、
連続する空白類を除去して、クリップボードに入れる

CreateObject("WScript.Shell").Run "powershell ""gcb | % trim | scb""", 0

WScript.Shell の、Run, Exec は、絶対パスじゃなくても、node みたいなコマンド名で書けるだろ?
例えば上なら、powershell というコマンド名

コマンドプロンプトで、where node と入力すると、パスが通っているだろ?
C:\Program Files\nodejs\node.exe
0348デフォルトの名無しさん
垢版 |
2019/11/04(月) 13:20:30.45ID:Zu03xGz4
クリップボード内の複数行文字列の、各行の先頭・末尾から、
連続する空白類を除去して、クリップボードに入れる

CreateObject("WScript.Shell").Run "powershell ""gcb | % trim | scb""", 0

WScript.Shell の、Run, Exec は、絶対パスじゃなくても、node みたいなコマンド名で書けるだろ?
例えば上なら、powershell というコマンド名

コマンドプロンプトで、where node と入力すると、パスが通っているだろ?
C:\Program Files\nodejs\node.exe
0350デフォルトの名無しさん
垢版 |
2019/11/10(日) 15:12:00.68ID:xm1aPYIT
そのやり取り見てふと探してみたけどNodeから扱えるクリップボード監視APIorモジュールってないんだな
単なるコピペなら見つかったけど
0351デフォルトの名無しさん
垢版 |
2019/11/12(火) 13:33:25.22ID:7YZfdUQ7
node.jsでローカルのクリップボード操作ってどうしてる?
java使ったりFlash使ったりは見つかるけどいまいち
0354デフォルトの名無しさん
垢版 |
2019/11/23(土) 04:55:17.89ID: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を閉じるコマンドを教えて頂けないでしょうか
0355デフォルトの名無しさん
垢版 |
2019/11/23(土) 09:32:04.13ID:cBKKqL2b
netstat -a -n | grep 3000
0356デフォルトの名無しさん
垢版 |
2019/12/02(月) 22:16:23.66ID:fbMjr17B
>>355
こういったコマンドがあったのですね・・・
関連コマンドも調べてみて勉強になりました
ありがとうございます!
0357デフォルトの名無しさん
垢版 |
2019/12/03(火) 09:38:40.12ID:yN5r9ueQ
ここサーバーサイドのスレだよな
0358デフォルトの名無しさん
垢版 |
2019/12/16(月) 00:05:17.66ID:OYZOPSrf
prompt系モジュールでtimeout実装したのって無いの?
探したけどinguirerがプラグインで追加できるくらいしか見つからなかった
0362デフォルトの名無しさん
垢版 |
2019/12/17(火) 22:36:05.58ID:SHyLrbNS
なるほど
0363デフォルトの名無しさん
垢版 |
2019/12/18(水) 11:46:32.95ID:j3JURanB
Node.js は、Electron, Ruby on Rails でも使う、すべてのweb 系の基礎。
絶対に、インストールして使うもの

パッケージマネージャーのnpm/yarn も使う。
Webpack, Babel なども

Nuxt.js は、Vue.js をより効果的に使うためのライブラリ

JavaScript のサーバー側は、Node.js で、
クライアント側は、jQuery, Vue.js, React など
0364デフォルトの名無しさん
垢版 |
2019/12/18(水) 11:58:33.63ID:kJrLdJZA
初めてwebpackでサンプルをビルドした新参ですが、node moduleからbrowser.jsっていうのが組み込まれているようです
これって何をするものなんでしょうか?
0365デフォルトの名無しさん
垢版 |
2019/12/18(水) 11:59:14.85ID:RQBBPl9v
>>363
さすが農奴
はんぱねぇわ
0366デフォルトの名無しさん
垢版 |
2019/12/18(水) 14:06:17.43ID:j3JURanB
browser.js は、babelで変換せずに、ES6で書いたJSを、ブラウザで実行する

Not intended for serious use
Compiling in the browser has a fairly limited use case...

まあ、実験用

詳しくは「browser.js」で検索して!
0367デフォルトの名無しさん
垢版 |
2019/12/18(水) 16:43:15.09ID:kXCOuU9J
>>366
有り難うございます

ES6で書かなければ必要ないものが組み込まれちゃうって事なんでしょうか?
自分のコードが大丈夫でも使用したmoduleがES6の可能性あるとかなのかな
とりあえず気にしない事にします
0368366
垢版 |
2019/12/18(水) 22:32:50.86ID:j3JURanB
VSCode では、普通にES6 でも動くから、気にした事がない

それが他人のプロジェクトなら、その設定ファイルに書いてあるのだろう
0369デフォルトの名無しさん
垢版 |
2019/12/21(土) 13:23:45.97ID:gaERTb6x
サーバにphpとDBおいてフロントサイドをjsで運用しているんですが
web-dev-serverでこういった環境をローカルに作る事って可能でしょうか?
それともnode.jsを使う以上サーバサイドもjsにしてしまうべきなんでしょうか?
0371デフォルトの名無しさん
垢版 |
2019/12/21(土) 13:58:12.68ID:gaERTb6x
>>370
有り難うございます
今までxammpっていうのを使っていたのでそれに流せばいいのでしょうか?
ちょっと試してみます
0373デフォルトの名無しさん
垢版 |
2019/12/21(土) 15:31:45.26ID:BSqycIZI
Ruby なら、PowerShell から、1-liner で、
Rubyで作られた遅いウェブサーバー、WEBrick が起動する

ruby -run -e httpd . -p 8080

そのフォルダに、index.html があれば、
何も考えなくても、これでブラウザからアクセスできる

http://localhost:8080

これで遊んだ後は、Routing, O/R マッパーなどを備えた、Sinatra, Rails などのフレームワークを使う。
Rails のコピーが、CakePHP, Spring Boot
0374デフォルトの名無しさん
垢版 |
2019/12/21(土) 15:43:47.89ID:DXb4EnUP
最終的な構成で、考えれば?
フロントエンドをサーバーサイドと一緒に配布する(ただの静的ファイル扱い)だけなら、同じサーバでいいけど、
そうでないなら、フロントエンド側も初めから別のサーバにしておく方がいい(CORS対応は必須)。
0375デフォルトの名無しさん
垢版 |
2019/12/21(土) 15:52:38.28ID:5ArYAWFR
>>373
お前、アムロの父ちゃんみたいだなw
0376デフォルトの名無しさん
垢版 |
2019/12/21(土) 16:08:05.96ID:CcLWlaTM
dev-serverだから開発用途のでしょ
たぶんwebpack-dev-serverだろうけどそれならhot module replacementとか使えるからサーバが何だろうと開発時は使うべき
サーバがnode以外の時はproxyの形で使える
0377デフォルトの名無しさん
垢版 |
2019/12/23(月) 13:15:15.27ID:lCv+3OMn
>>376
有り難うございます
proxyの概念自体がよく解ってないんですが、そういう仲立ち的な使い方も出来るという事ですね

ちょっとnpmだけでも覚える事が多すぎるのでゆっくり慣れていく所存です…
0378デフォルトの名無しさん
垢版 |
2019/12/23(月) 22:45:35.05ID:nv2HpLa5
Node.js のnpm, yarn, PHP のComposer とか、Ruby のBundler のコピーだろ。
別に、覚えることなんてない

global/local のインストールの区別と、本番用/開発用の区別だけ。
それと、設定ファイル
0379デフォルトの名無しさん
垢版 |
2019/12/23(月) 23:46:27.75ID:blTffQrc
たぶんnpmレジストリで公開されてるパッケージ群の総称としてnpmと言ってんじゃね
0380デフォルトの名無しさん
垢版 |
2019/12/24(火) 14:05:27.32ID:IBUEMR4t
npmのパッケージ全部覚えるとか
Cの野良ライブラリ覚えるのとか
githubのレポジトリ全部覚えるのとか
苦行以外の何物でもない
0381デフォルトの名無しさん
垢版 |
2020/02/15(土) 11:48:59.21ID:rOuGo3aV
node.jsはjavaにおけるjvmみたいなもの?

electronを使ったデスクトップアプリは今後普及するでしょうか?
0382デフォルトの名無しさん
垢版 |
2020/02/15(土) 15:14:42.82ID:C3ilCL7T
実行環境という意味ではそっすね
0384デフォルトの名無しさん
垢版 |
2020/02/16(日) 07:11:26.16ID:5EL9p8ON
VSCode は、Electron 製

マルチプラットフォームは、
React Native + Expo
アシアルのMonaca(Cordova/PhoneGap) + Onsen UI
Mono を使っている、Unity, Xamarin

やっぱり漏れは、サーバー側は、Node.js よりも、Ruby を使うけど
0385デフォルトの名無しさん
垢版 |
2020/02/16(日) 08:37:01.80ID:GfLcoptO
Ruby使うセンスはわからんな。
今どきRailsとか?
あんなの使うぐらいならPHPで素組したほうが早いし安全だと思うわ。
0388デフォルトの名無しさん
垢版 |
2020/02/18(火) 01:59:27.59ID:1aZdIiHX
案件の数的にはphp, laravelってのが多いな。
PHPも7以降はプリミティブにもタイプヒンティング使えるからそれを積極的に使うとrailsより良かったりする。
0389デフォルトの名無しさん
垢版 |
2020/02/18(火) 05:16:07.44ID:KGU+DtHT
うつ病君
青木 一泰
0390デフォルトの名無しさん
垢版 |
2020/02/18(火) 09:42:41.11ID:0PsFYxUX
PHPはフレームワーク使わずに、きちんとバリデーションして信頼境界線を意識して使うと、すごく便利よ。
歯を磨くには歯ブラシだなって思う。
0391デフォルトの名無しさん
垢版 |
2020/02/18(火) 21:16:40.68ID:enVFBik2
Ruby は、JIT で速いから、web サイトの最高速度は未だに、Rails。
世界を驚嘆させた、dev.to もそう

表示速度が“異常な”Webサイト「dev.to」とか
https://dev.to/

元乃木坂46 の川後陽菜のWebサイト、SKIYAKI とか
https://kawagopro.com/

でも、PHP も、次からは、JIT を搭載するらしい
0392デフォルトの名無しさん
垢版 |
2020/02/19(水) 10:03:13.31ID:z/G/Tqiv
Electronで作られたソフトってVSCode以外に何がある?
0399デフォルトの名無しさん
垢版 |
2020/03/17(火) 15:04:35.43ID:F6UjfHtk
GitHub、パッケージ管理システム「npm」をメンテナンスするnpm, Inc.を買収
ttp://forest.watch.impress.co.jp/docs/news/1241272.html
0401デフォルトの名無しさん
垢版 |
2020/03/17(火) 19:30:12.44ID:kaSPl16J
どっちにpublishすればいいねん問題は杞憂に終わったか
でも一強他弱の構図ってあんまりろくなことにならないんだよなぁ
0403デフォルトの名無しさん
垢版 |
2020/03/18(水) 00:56:50.83ID:Y6R8GMvO
やーんはcliだから今の話とはちょっと…
リポジトリ/レジストリがms/github一強過ぎて他の選択肢がーってことよね
0404デフォルトの名無しさん
垢版 |
2020/04/17(金) 01:34:09.29ID:bDh7CEKX
eventsモジュールにいつの間にか生えてるonceメソッド
ずっと前にこのスレで誰かが欲しがってたやつだな
0405デフォルトの名無しさん
垢版 |
2020/05/14(木) 13:28:24.58ID:IPYOGIQF
Deno出てきたけどコアモジュールの互換性がないのはきつい
両対応のための中間モジュールが必要になって太る結果にならないといいけど
0407デフォルトの名無しさん
垢版 |
2020/05/17(日) 12:43:33.92ID:D/2Y1Nc3
勉強を始めるならそれでもいいがプロダクションで使うのはまだしばらくnode一択だな
0410デフォルトの名無しさん
垢版 |
2020/05/17(日) 15:59:01.17ID:pmJJj293
deno、typescriptネイティブに使えるのが良いな
セキュリティ機能は、早々にalias切って無効化して使いそう。
あと、モジュール読み込みがgolangぽくURIなのは構わんけど、deno.landの信頼性が未知数だ
0411デフォルトの名無しさん
垢版 |
2020/05/17(日) 16:38:25.62ID:XFHZbI1n
モジュールがURIなのはgoと同じ轍を踏みそうで気にはなるな。
みんなちゃんと互換性に注意して作って、最初からRESTなAPIのようにv1とかv2とかパスに含めるかな?みたいな猜疑心はある。

ただ、Denoでよくやったと思うのは、バンドラーを積んだ事だと思ってるけど、みんなどう思う?
今までnodeで作ったサーバモジュールをインターネットが繋がってない環境にデプロイするの、結構めんどくなかった?
レスを投稿する


ニューススポーツなんでも実況