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

1デフォルトの名無しさん
垢版 |
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/
2018/11/29(木) 01:11:01.78ID:rs9fzmaE
日本語通じてない感やばない?

VS2017はインストール時にNodeを一緒にインストールするか選べる
274デフォルトの名無しさん
垢版 |
2018/12/02(日) 18:17:04.36ID:r/YV3Hmh
農奴はオワコン
2018/12/02(日) 19:49:58.35ID:hHHhmr7T
>>258
好きなの使え
https://www.npmjs.com/package/walker
https://www.npmjs.com/package/walkdir
https://www.npmjs.com/package/walk
https://www.npmjs.com/package/fs-walk
2018/12/21(金) 09:51:27.26ID:/0a+/ZiL
グローバル空間に、ネームスペースを付けずに、パッケージに
含まれる関数全部を一度に分割代入を使わずにリクワイヤーするにはどうやりますか?
2018/12/21(金) 11:10:58.92ID:9Mj5/4cf
require('hoge.js');
2018/12/21(金) 11:30:16.23ID:jEzMm4KB
Object.assign(global, require('hoge.js'))
2018/12/21(金) 15:27:30.27ID:/0a+/ZiL
>>277
ありがとうございます。
リファレンスエラーになってできませんでした。
2018/12/23(日) 00:53:23.01ID:RKXbiRtg
2018年になってようやくnpmを理解できた
2018/12/23(日) 04:40:19.41ID:4FLJEAfZ
今年中にわかってよかったな
282デフォルトの名無しさん
垢版 |
2018/12/23(日) 12:40:19.38ID:1CMGQ+zK
npmはオワコン
2018/12/25(火) 22:12:21.78ID:a1VV5QoF
未だに--saveが必要なくなったことに気がついてない人がいる
2018/12/26(水) 01:01:54.88ID:o7c2/aOT
>>283
マジかよ…知らなかった…
2018/12/26(水) 23:32:12.78ID:0rGTuPiX
ホントだ 知らなかったwww
2018/12/27(木) 15:48:56.03ID:5w9WbE4d
あの変更はかえって--no-saveする手間が増えて不便だわ
2018/12/27(木) 15:52:03.62ID:kq41KEy5
cliとしてはyarnの方が使いやすい
2018/12/27(木) 16:20:54.35ID:dG7CRozn
>>287
どうしてそう思うのか書いてもらえないと参考にならない。
海外のブログ読んでると、真っ先にyarn移ったような人たちが最近続々とnpmに戻ってきていて、俺にはなぜyarnに移ったのか、そしてなぜnpmに戻ってきたのかサッパリ分からない。
2018/12/27(木) 16:31:34.16ID:9Wczl2GP
今さら分からない人は分かりたいとも思ってないだろうからどうでもいんじゃね?
npmに戻る人がいるのはnpmがyarnのいいところをどんどん取り入れたからだろう
まともなロックファイル、パフォーマンス、コマンドラインの改善(npx含む)はyarnの後追い
npm独自なのはセキュリティ周りか
2018/12/27(木) 18:00:55.29ID:2IMw5f1U
良くも悪くも、標準だからだと思うけど。
俺も標準だから戻ったよ。
2018/12/27(木) 18:13:43.11ID:00PdR8uN
標準の地位に胡座をかいてシュリンクラップ糞のまま放置してたからyarnに寝首をかかれた
なんでも独占はよくない切磋琢磨が必要
2018/12/27(木) 19:09:40.30ID:cQueOXAg
ラズパイでなんかやろうとしたときに全然うまくいかなくて試しにyarnにしたらうまくいった事はあった
2018/12/27(木) 19:18:59.81ID:dG7CRozn
npmのとこ行っちゃいyarn…
2019/01/16(水) 02:20:59.42ID:r494tM7s
ほとんどAPI同じだけどstatsじゃなくてdirent実装したのは何でなん?
2019/01/21(月) 00:35:01.04ID:DKQzzj98
yarnはパッケージマネージャー界のCoffeeScript
2019/01/21(月) 12:31:54.36ID:yPBr5z/L
それはない
2019/02/27(水) 08:08:28.87ID:OYLvU+sF
node.jsに将来性はあるかなぁ?
2019/02/27(水) 09:26:32.31ID:gzx7LPiY
個人的な感覚だけど組込み関連でもっと伸びるんじゃないかと思う
最近シリアル通信のプログラムよく書いてるよ
2019/02/27(水) 09:53:02.76ID:haTnnqie
あの遅いpythonですら許容されてるもんな。
300デフォルトの名無しさん
垢版 |
2019/04/02(火) 19:47:41.43ID:2j6V1crX
非同期処理できなくて泣きそう
2019/04/02(火) 21:28:46.28ID:3dIjgbOm
node.js は、Ruby on Rails でも必須

Babel, Webpack で、ES2015 を、ES5 へ変換する。
Coffee Script, Type Script は不要

初めてのJavaScript 第3版 ――ES2015以降の最新ウェブ開発、オライリー、2017

Rails プログラマーも、この本を読むのが必須!
2019/04/02(火) 21:53:33.10ID:bvgXxWzo
jsはフロントエンドで排他的な地位を築いてるわけだがwasmで変わるかどうか
2019/04/03(水) 06:46:18.73ID:JogZOakl
つうかwasmっていつ始まるんだよ
2019/04/03(水) 08:54:18.63ID:6aon8UUL
もう始まってるよ!
305デフォルトの名無しさん
垢版 |
2019/05/18(土) 01:39:55.47ID:NUmvom/y
class使うと冗長的でイヤだな〜
JAVAの人以外に使う人いるのか?
PHPもclass文化が入ってきてから長ったらしくて見にくくなった
306デフォルトの名無しさん
垢版 |
2019/05/18(土) 23:10:19.77ID:V1bm/mN0
入れ物どうするの?
2019/05/18(土) 23:47:25.37ID:6fmwe7rg
昔はReactはclass必須だったけど最近はconstしか使わなくなったな
2019/05/20(月) 13:57:02.12ID:315y2LTs
>>306
え?
2019/05/25(土) 10:36:45.88ID:P9kv6fd4
https://electronjs.org/releases/stable
electron のバージョンを確認すると.6.4.1と出るんですが、最新と違います
なにか間違っているでしょうか
npm electron -v
こうやってます
2019/05/25(土) 11:18:04.02ID:lK+K49ID
>>309
それじゃnpmのバージョンが表示されてるだけ
npm outdated electronとか
npm list electron
2019/05/26(日) 07:33:35.43ID:BNx/1Kr/
仕事じゃなければclass使う機会ないんじゃないの?
もともと第一級言語だし。
JAVAはいちいち面倒なことしてるなって思う。
2019/05/26(日) 13:33:28.57ID:/3XSSWvk
去年までのreactではライフサイクル扱うのに必須だったからそれなりにclass使ってた
今はhooksで不要になったけど
vuejsでclass使わないのはvuejsのclassサポートの出来が悪いから
webcomponentsではclass使う
2019/05/26(日) 13:34:42.45ID:/3XSSWvk
おっとwebcomponentsではssrしてないからスレチか
2019/05/28(火) 18:26:28.76ID:u9qp/pn3
Readable.from便利だな
2019/08/15(木) 14:14:57.93ID:jracdouM
ちょっと実装の依存関係について質問。
deps配下って、
依存モジュール構築時、node.jsそれ自体に依存しているけど、どうやってビルドしているの?

https://github.com/nodejs/node
2019/08/15(木) 16:24:58.54ID:tw8yrSxj
依存してるか?
置いてあるだけでは?
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を繰り返してくれるだけなので
どうしても時間がかかってしまいます。

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

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

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

PC 内のファイルにアクセスするなら、Electron とか。
VSCode も、Electron 製
323デフォルトの名無しさん
垢版 |
2019/10/20(日) 12:19:52.71ID:FREy/Z7W
なるほどPC内のファイルにアクセスするためのツールなんですね、Electronって。
2019/10/20(日) 12:49:58.20ID:TAO9/plN
ファイルにアクセスするだけならnode.js単体でもできる
electronはブラウザとnode.jsを統合したものでHTMLベースのGUIを持ちつつファイルやネットワークを自在に扱える
つまりデスクトップアプリのプラットフォーム
325デフォルトの名無しさん
垢版 |
2019/10/20(日) 13:14:43.74ID:Df2Q09El
えっ、でも>>322が…
2019/10/20(日) 13:36:05.62ID:nEJBA+Mj
こんなとこ鵜呑みにしないで自分で調べろ
327322
垢版 |
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
2019/10/21(月) 00:49:40.00ID:cifrZUYa
>>327
知らないならそんな無理してレスしなくてもいいやろ
329デフォルトの名無しさん
垢版 |
2019/10/21(月) 02:36:24.31ID:W7vxtZcq
>>327
なんで>>322みたいなウソつくの?ねぇ!?
2019/10/25(金) 02:49:42.38ID:rOQwe8UN
この変な改行は見覚えあるな
いつもWeb板の質問スレでめちゃくちゃなレスしてるやつかな
2019/10/25(金) 21:10:41.94ID:R3+rebPF
違うよ。Rubyガイジっていう、ム板で一番嫌われているキチガイ。
2019/10/25(金) 21:21:14.20ID:gI2SKdMr
そいつweb板にも来てるよ
333デフォルトの名無しさん
垢版 |
2019/10/25(金) 23:35:33.90ID:9ZGj0mXw
糖質の見本みたいなやつ。医学発展のために献体すべき。
334デフォルトの名無しさん
垢版 |
2019/10/26(土) 10:05:13.04ID:e6NVGnmw
糖合質調症
脳が糖で溶ける
335デフォルトの名無しさん
垢版 |
2019/11/03(日) 20:01:18.21ID:v1wfX+lc
Nodeって、なんでこんなに広がったんだろうな?
たかだかjs如きが
2019/11/03(日) 20:16:57.32ID:lIMPkprv
jsだからじゃね
2019/11/03(日) 23:25:52.66ID:ungx1UoX
たかがJSと蔑まれる要因だった高過ぎる自由度が、ベストプラクティスの集積のお陰ですべてプラスに転化してしまったんだ
2019/11/04(月) 00:16:03.94ID:U87Emrnv
古くはunixやcもたかがだしpcもwindowsもたかがだし
たかがtcp/ip、たかがjava、たかがlinux、そんなばっかだぞ
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"));
2019/11/04(月) 02:25:09.17ID:ku/TWmjC
少なくともブラウザ上で実質唯一の選択肢だったのがブラウザ以外で実用的になったわけだし, 広がる道理としては十分だと思うけどな
2019/11/04(月) 08:35:20.63ID:SxA1gV4C
サーバーサイドでnode使ってる人いる?
2019/11/04(月) 08:42:56.84ID:cptTSbgU
>>339
chcp 65001 は実行済み?
2019/11/04(月) 10:32:03.99ID:PlunRwPx
>>342
ありがとうございます!
CodePageを65001にしても変わらずrun.js実行で文字化けの結果が返ってきます・・・
2019/11/04(月) 10:33:10.71ID:PlunRwPx
あ、CodePageじゃなくてchcpです。レジストリからいじってやりました・・・
2019/11/04(月) 11:20:17.56ID:kKuYGgew
>>339
process.stdout.write(buffer);
2019/11/04(月) 11:40:31.03ID:PlunRwPx
>>345
ありがとうございました!最後の行を置き換えたら文字化けせずに表示されました
ずっとハマってたのでちゃんとできて泣きそう聞いてよかった
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
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
2019/11/04(月) 20:17:02.81ID:PlunRwPx
はい、絶対パスはnodeに短縮できました
2019/11/10(日) 15:12:00.68ID:xm1aPYIT
そのやり取り見てふと探してみたけどNodeから扱えるクリップボード監視APIorモジュールってないんだな
単なるコピペなら見つかったけど
2019/11/12(火) 13:33:25.22ID:7YZfdUQ7
node.jsでローカルのクリップボード操作ってどうしてる?
java使ったりFlash使ったりは見つかるけどいまいち
352デフォルトの名無しさん
垢版 |
2019/11/12(火) 13:39:01.64ID:VHJGIodx
>>351
https://github.com/sindresorhus/clipboardy
2019/11/12(火) 15:21:55.81ID:7YZfdUQ7
>>352
ありがとう
これ超簡単だ
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を閉じるコマンドを教えて頂けないでしょうか
355デフォルトの名無しさん
垢版 |
2019/11/23(土) 09:32:04.13ID:cBKKqL2b
netstat -a -n | grep 3000
2019/12/02(月) 22:16:23.66ID:fbMjr17B
>>355
こういったコマンドがあったのですね・・・
関連コマンドも調べてみて勉強になりました
ありがとうございます!
357デフォルトの名無しさん
垢版 |
2019/12/03(火) 09:38:40.12ID:yN5r9ueQ
ここサーバーサイドのスレだよな
2019/12/16(月) 00:05:17.66ID:OYZOPSrf
prompt系モジュールでtimeout実装したのって無いの?
探したけどinguirerがプラグインで追加できるくらいしか見つからなかった
2019/12/16(月) 00:19:44.26ID:+KWK+mzK
>>358
Promise.race()でタイマーと組み合わせればいい
2019/12/16(月) 21:41:20.26ID:j7231URK
全く初心者です。
Node.js と nuxt.jsってどうちがうの?
2019/12/16(月) 21:52:48.22ID:vHo7jlv+
nuxtはnodeの上で動く
362デフォルトの名無しさん
垢版 |
2019/12/17(火) 22:36:05.58ID:SHyLrbNS
なるほど
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 など
364デフォルトの名無しさん
垢版 |
2019/12/18(水) 11:58:33.63ID:kJrLdJZA
初めてwebpackでサンプルをビルドした新参ですが、node moduleからbrowser.jsっていうのが組み込まれているようです
これって何をするものなんでしょうか?
365デフォルトの名無しさん
垢版 |
2019/12/18(水) 11:59:14.85ID:RQBBPl9v
>>363
さすが農奴
はんぱねぇわ
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」で検索して!
367デフォルトの名無しさん
垢版 |
2019/12/18(水) 16:43:15.09ID:kXCOuU9J
>>366
有り難うございます

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

それが他人のプロジェクトなら、その設定ファイルに書いてあるのだろう
369デフォルトの名無しさん
垢版 |
2019/12/21(土) 13:23:45.97ID:gaERTb6x
サーバにphpとDBおいてフロントサイドをjsで運用しているんですが
web-dev-serverでこういった環境をローカルに作る事って可能でしょうか?
それともnode.jsを使う以上サーバサイドもjsにしてしまうべきなんでしょうか?
2019/12/21(土) 13:29:18.33ID:tKqa0Mcd
PHPのbuilt-inのweb server使え
371デフォルトの名無しさん
垢版 |
2019/12/21(土) 13:58:12.68ID:gaERTb6x
>>370
有り難うございます
今までxammpっていうのを使っていたのでそれに流せばいいのでしょうか?
ちょっと試してみます
2019/12/21(土) 14:16:41.22ID:tKqa0Mcd
>>371
流す?

projectのrootディレクトリで
$ php -S localhost:8080
ってやれば
http://localhost:8080/foobar.php
でアクセス可能
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
レスを投稿する

5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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