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/
0254デフォルトの名無しさん
垢版 |
2018/09/10(月) 11:08:22.30ID:wQh8RVrU
>>252
x Rails語の布教
〇 掌田津耶乃の宣伝
0256デフォルトの名無しさん
垢版 |
2018/09/11(火) 13:46:36.75ID:pwo3DQbp
布留川英一の本っていいの?
0258デフォルトの名無しさん
垢版 |
2018/11/09(金) 12:24:29.99ID:fHYOMbmE
Promiseの再帰について質問です
やりたいことは、フォルダの中を再帰的に掘って見つけたファイルを配列に入れて返す、です
フォルダの深さやファイル数は不確定です

1フォルダの中身をループでひとつずつ見ていって
 ファイル・フォルダか判定し
  ファイルなら返す配列に入れる
  フォルダなら再帰
   返った配列を、返す配列にconcat

とする再帰関数を作れば良いと考えたのですが
この再帰関数自体と、ファイル・フォルダ判定が非同期なので、全部堀り終わったかわかりません

そこでループの中身をまるっとPromiseにして、仮配列に貯めておき
最後にPromise.allで実行する、としているのですが、なんか回りくどい気がします
考え方は正しいでしょうか?
https://jsbin.com/rocebihipo/edit?js
0259258
垢版 |
2018/11/09(金) 12:25:11.79ID:fHYOMbmE
スレ違いだったらすんません
0261デフォルトの名無しさん
垢版 |
2018/11/09(金) 14:55:23.41ID:9TLjX86J
あるいは再帰関数内でasync-await使えばいいんじゃない
どっちによ最初の関数が終了するかpromiseがresolveすればそれが完走判定になる
素直にnpmから同じことをやるモジュール拾って使ったほうがいいと思うけど
0262258
垢版 |
2018/11/09(金) 15:04:40.93ID:fHYOMbmE
あざます

>>260
同期ならふつうの再帰関数になるので
数が少ないうちはそれでも良いかなと考えてます

>>261
なるほどー
0263デフォルトの名無しさん
垢版 |
2018/11/09(金) 23:15:09.16ID: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 を除く
0265デフォルトの名無しさん
垢版 |
2018/11/10(土) 13:44:39.63ID:KutuN/gN
同意せざるを得ない
0267デフォルトの名無しさん
垢版 |
2018/11/20(火) 11:26:56.53ID:uxKeWy0p
ウインドーズ環境でnode.jsでcon.拡張子 みたいなファイル作ったら消せなくなるな。
いろいろ調べてやってみたが全部のほうほうで消せなかった。
消せなくなる勇気があればやってみてほしい。
0268デフォルトの名無しさん
垢版 |
2018/11/20(火) 12:46:58.78ID:ZfASh1x8
管理者でコマンドプロンプト開いて
rd /s "\\?\フォルダ名"
0269デフォルトの名無しさん
垢版 |
2018/11/28(水) 21:53:23.10ID:ndifwdFb
visual studio 2017ってnode.jsは自分でダウンロードして
インストールする必要があるの?
0273デフォルトの名無しさん
垢版 |
2018/11/29(木) 01:11:01.78ID:rs9fzmaE
日本語通じてない感やばない?

VS2017はインストール時にNodeを一緒にインストールするか選べる
0274デフォルトの名無しさん
垢版 |
2018/12/02(日) 18:17:04.36ID:r/YV3Hmh
農奴はオワコン
0276デフォルトの名無しさん
垢版 |
2018/12/21(金) 09:51:27.26ID:/0a+/ZiL
グローバル空間に、ネームスペースを付けずに、パッケージに
含まれる関数全部を一度に分割代入を使わずにリクワイヤーするにはどうやりますか?
0282デフォルトの名無しさん
垢版 |
2018/12/23(日) 12:40:19.38ID:1CMGQ+zK
npmはオワコン
0288デフォルトの名無しさん
垢版 |
2018/12/27(木) 16:20:54.35ID:dG7CRozn
>>287
どうしてそう思うのか書いてもらえないと参考にならない。
海外のブログ読んでると、真っ先にyarn移ったような人たちが最近続々とnpmに戻ってきていて、俺にはなぜyarnに移ったのか、そしてなぜnpmに戻ってきたのかサッパリ分からない。
0289デフォルトの名無しさん
垢版 |
2018/12/27(木) 16:31:34.16ID:9Wczl2GP
今さら分からない人は分かりたいとも思ってないだろうからどうでもいんじゃね?
npmに戻る人がいるのはnpmがyarnのいいところをどんどん取り入れたからだろう
まともなロックファイル、パフォーマンス、コマンドラインの改善(npx含む)はyarnの後追い
npm独自なのはセキュリティ周りか
0291デフォルトの名無しさん
垢版 |
2018/12/27(木) 18:13:43.11ID:00PdR8uN
標準の地位に胡座をかいてシュリンクラップ糞のまま放置してたからyarnに寝首をかかれた
なんでも独占はよくない切磋琢磨が必要
0292デフォルトの名無しさん
垢版 |
2018/12/27(木) 19:09:40.30ID:cQueOXAg
ラズパイでなんかやろうとしたときに全然うまくいかなくて試しにyarnにしたらうまくいった事はあった
0298デフォルトの名無しさん
垢版 |
2019/02/27(水) 09:26:32.31ID:gzx7LPiY
個人的な感覚だけど組込み関連でもっと伸びるんじゃないかと思う
最近シリアル通信のプログラムよく書いてるよ
0300デフォルトの名無しさん
垢版 |
2019/04/02(火) 19:47:41.43ID:2j6V1crX
非同期処理できなくて泣きそう
0301デフォルトの名無しさん
垢版 |
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 プログラマーも、この本を読むのが必須!
0305デフォルトの名無しさん
垢版 |
2019/05/18(土) 01:39:55.47ID:NUmvom/y
class使うと冗長的でイヤだな〜
JAVAの人以外に使う人いるのか?
PHPもclass文化が入ってきてから長ったらしくて見にくくなった
0306デフォルトの名無しさん
垢版 |
2019/05/18(土) 23:10:19.77ID:V1bm/mN0
入れ物どうするの?
0311デフォルトの名無しさん
垢版 |
2019/05/26(日) 07:33:35.43ID:BNx/1Kr/
仕事じゃなければclass使う機会ないんじゃないの?
もともと第一級言語だし。
JAVAはいちいち面倒なことしてるなって思う。
0312デフォルトの名無しさん
垢版 |
2019/05/26(日) 13:33:28.57ID:/3XSSWvk
去年までのreactではライフサイクル扱うのに必須だったからそれなりにclass使ってた
今はhooksで不要になったけど
vuejsでclass使わないのはvuejsのclassサポートの出来が悪いから
webcomponentsではclass使う
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モジュールってないんだな
単なるコピペなら見つかったけど
レスを投稿する


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