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/
0217デフォルトの名無しさん
垢版 |
2018/08/23(木) 20:43:16.58ID:n9wdMl+k
実行するSQLをログで履いて、それを
コピーして手動でDBでSQL実行すると
意図通り4件のレコードが取得できるのに、
nodejsで同じSQLを実行するとresultオブジェクトの
行数が0件なのは非同期処理関係ありますか?
因みにresultオブジェクトは正しく取得できて
いてDBのテーブル名やカラム名情報は
取得できているから接続には問題がない。
一応、結果として返されてはいるのに、
何故か手動の時と結果の内容が違う。
0219デフォルトの名無しさん
垢版 |
2018/08/23(木) 21:36:08.48ID:NMWQFTIr
>>217
件数が異なるのに、なんで「resultオブジェクトは正しく取得出来てる」と思えるの?
正しくないじゃん。

nodeでクエリ投げるユーザと、手動で実行するユーザは同じなの?
そのDBやテーブルでSELECTをGRANTしてないとかそういう話ではないと切り分けしてる?
0221デフォルトの名無しさん
垢版 |
2018/08/23(木) 22:48:43.81ID:wvgL9Tt8
1.回答が複数のコミュニティーに分散してしまい、知識の集積という1コミュニティーの目的にそぐわない。
2.ネット資源(サーバーや回線の能力)とて無限ではない。同じ内容の記事をばら撒くのは資源の無駄遣いといえる。
3.その問題に関心のある人は類似した複数のコミュニティーに参加して新規投稿をチェックしていることが多いが、あちこちの同じ投稿に対してそれが本当に目新しい内容かを峻別しなければならなくなる。
4.他のコミュニティーで付けられた回答を知らずに同内容の回答を付けてしまったり、他のコミュニティーですでに解決したことを知らずに検討を続けたり、善意の回答者の労力が無駄になる。
5.この場所だけでは質問が解決するか不安であるという不信感を表明することと、結果としては同じである。
0224デフォルトの名無しさん
垢版 |
2018/08/23(木) 23:17:06.11ID:qUZ5eK5Q
プログラミングと言うよりも、環境構築だろ。
LinuC・データベーススペシャリストなどの資格もいるし、数年以上掛かる

DB なんて、WEB+DB とか、ミックの本を読んだり、何年も勉強する

掌田津耶乃の本
Node.js超入門、2017
Python Django 超入門、2018

ましてや、Node, Django の本などは、ここ1, 2年の話。
一方、Rails なんて何十冊も出てるだろ

Node, Django ができる奴は、英語もできて、自分で問題を解決できる人だけ。
最低でも数言語できて、資格も持っていて、数年以上勉強している人だけ

そもそも簡単な言語の順番は、Ruby, Python, JavaScript の順番。
初心者は、無料のRails チュートリアルで、環境構築もみっちり勉強すべき
0225デフォルトの名無しさん
垢版 |
2018/08/23(木) 23:34:47.51ID:p0u00SDp
Node.js超入門は読んだけどこれ読んだだけだとNode.jsを使うアドバンテージなんて得られないと思う
素直にPHPかRubyでも使ってた方がいいんじゃないかってレベル

ちゃんと使おうと思うなら実践Node.jsプログラミングくらいを読んだ方がいいと思う
0229デフォルトの名無しさん
垢版 |
2018/08/23(木) 23:59:41.31ID:E5h4CmTu
何日くらい回答なかったらマルチポストしていいんだろうかって悩むことはある
0230デフォルトの名無しさん
垢版 |
2018/08/24(金) 00:17:51.60ID:+eNrM5zE
>>229
そんなもんでいちいち悩まずマルチすりゃあいいんだよ。
ここは罵詈雑言、煽り上等、虚実混交の2ちゃんねるだ。
難癖付けられたら華麗にスル〜
0231224
垢版 |
2018/08/24(金) 01:25:32.83ID:ZgK6e0Tb
結局、掌田津耶乃の「Node.js超入門」「Python Django 超入門」を読んでも、触り程度。
本格的な勉強は、Python, JavaScript で、悪戦苦闘していじくりまわすしかない

それならRuby で、Sinatra をいじくりまわす方が簡単。
難しい言語のフレームワークをいじくりまわすのは、時間を損する
0232デフォルトの名無しさん
垢版 |
2018/08/24(金) 08:00:14.19ID:q0UJEScu
マルチしても良いけど、全部で言い方変えるのと、
全部の回収するのは徹底してほしい。
0233デフォルトの名無しさん
垢版 |
2018/08/24(金) 13:05:33.08ID:ZVlysGry
>>224
掌田 ω
Rails ω
0234デフォルトの名無しさん
垢版 |
2018/08/24(金) 14:45:41.42ID:ZgK6e0Tb
世界中で、すべての主要言語のフレームワーク・ゲームエンジンの本を書いたのは、掌田だけ!
0235デフォルトの名無しさん
垢版 |
2018/08/24(金) 21:21:20.94ID:FSpmxK6R
昔ニフティーフォーラム会議室ってあったよなあ
マルチポスト探し出して投稿者を糾弾することを生きがいにしてたような奴がいたなあ
0237デフォルトの名無しさん
垢版 |
2018/08/25(土) 12:44:20.44ID:00w/RGH3
>>217
resultをコールバックの中で取得してるよね?
コンセント刺さってる?レベルの質問で申し訳ないが
0240デフォルトの名無しさん
垢版 |
2018/08/29(水) 19:58:20.44ID:tqG09mle
babel-upgradeで楽できるかと思いきやstage-*の中身を個別に書き足さなきゃ行けなくてしんどい
0245デフォルトの名無しさん
垢版 |
2018/09/09(日) 01:50:35.75ID:0bXk8YdS
無名関数の req, res, に続く3番目の「next」ってなんなんですか?
「next()」を実行すると、次の処理が行われるって言うけど
「次の処理」が何なのかわからないかからよくわかりません。
nextで次に何が呼ばれるか確かめる方法ってありますか?
あとexpressには routesとviewのフォルダしか無いけど、
モデルクラスの定義ってどうやるの?
クラスを定義してオブジェクト指向をやろうとすると、
メンバ変数への値の格納や参照に「this」を使うけど、
JavaScriptの「this」って無名関数のなかだと違う意味になるし、
非同期処理だかthisに格納した値を生成したインスタンスから取り出そうと
思っても格納されていない。
無名関数内でメンバ変数に格納するという作業が後回しになって、
インスタンスからメンバにアクセスして値を取得するコードが
先に実行されてるからだと思う。
Promiseとか使ったけどこのメンバ変数への格納だけはうまく行かなかった。
というのはインスタンスのnewが関数実行じゃないから、
コンストラクタは返り値としてオブジェクトをreturnするわけじゃないだろ?
通常の関数のreturnが非同期でうまくいかない問題はPromiseで
解決できたけど、インスタンスのnewを非同期で成功させる方法がわからない。
node jsで無名関数を使わない処理なんてほぼ無いと言っていいから、
このままだとインスタンスを生成してクラスに処理を委託することができない。
0249デフォルトの名無しさん
垢版 |
2018/09/09(日) 11:22:54.87ID:kzlGF2pO
メソッドチェーン
0250デフォルトの名無しさん
垢版 |
2018/09/09(日) 17:30:53.56ID:0ym3cmgA
JavaScript のthis は、文脈依存だからバグる。
jQuery, Haxe では、this を変えてる

だから事前に、this を取っておく。
変数 = this

フレームワークは最初に、無料のRails チュートリアルをやった方が、わかりやすい

Node.js超入門、掌田津耶乃、2017
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使う
レスを投稿する


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