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/
【node.js】サーバサイドjavascript 5【Nashorn】
1デフォルトの名無しさん
2018/02/13(火) 22:21:33.91ID:moEhrPrC746デフォルトの名無しさん
2021/12/27(月) 16:04:01.18ID:XkNPDe9x 最近アツいサーバサイドJSはnodeよりもdenoよりもCloudflare Workers
747デフォルトの名無しさん
2021/12/27(月) 16:21:39.89ID:U0LFk7o9 denoって全然使われてないの?
748デフォルトの名無しさん
2021/12/27(月) 16:28:54.26ID:XkNPDe9x denoは苦戦してるみたいだねー
それでexpressなどnode用のライブラリが動くように互換性を高める方針になった
でもそれならnode使い続ければいいやってなりそう
それでexpressなどnode用のライブラリが動くように互換性を高める方針になった
でもそれならnode使い続ければいいやってなりそう
749デフォルトの名無しさん
2022/01/05(水) 00:01:04.66ID:XksPZRYQ puppeteerを使って投票サイトの投票を自動化したいのだけど、
実行してもエラーを起こさず無反応なんだよね
Headless Recorerを使ってるからHTML部分の間違いはないと思うのだけど、
UserAgent以外で何か対策ないっすかね
実行してもエラーを起こさず無反応なんだよね
Headless Recorerを使ってるからHTML部分の間違いはないと思うのだけど、
UserAgent以外で何か対策ないっすかね
750デフォルトの名無しさん
2022/01/05(水) 00:22:23.97ID:n516+jFB いくらでも試すことはあるけど悪事の片棒を担ぎそうで怖いな
一般論として言えるのはpuppeteerでも普通にWebページのコンテキストからDOM APIを叩ける
一般論として言えるのはpuppeteerでも普通にWebページのコンテキストからDOM APIを叩ける
751デフォルトの名無しさん
2022/01/05(水) 00:33:19.61ID:XksPZRYQ んじゃ、逆にWEBサイトを作る側はどんな対策をしているのでしょうか?
752デフォルトの名無しさん
2022/01/05(水) 10:54:49.76ID:4mwV9n2W reCAPTCHA使ってんじゃない?
753デフォルトの名無しさん
2022/01/05(水) 15:02:25.17ID:XksPZRYQ754デフォルトの名無しさん
2022/01/05(水) 15:47:16.38ID:w42D9Ab/ 手動で操作した時のリクエストヘッダーの中身を解析して
間違いなく妥当なリクエストが投げられてるのが大前提
あとは“how to detect headless browser”でググるといいよ
間違いなく妥当なリクエストが投げられてるのが大前提
あとは“how to detect headless browser”でググるといいよ
755デフォルトの名無しさん
2022/01/06(木) 22:16:32.70ID:vwKSLmqQ npmがぶっ壊れたらどうすればいいですかapt でuninstall installしても治りません
756デフォルトの名無しさん
2022/01/10(月) 00:21:58.20ID:MINWORCd スレ立てるまでもない質問はここで 158匹目
https://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
https://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
757デフォルトの名無しさん
2022/02/19(土) 23:48:14.35ID:ukL0Abnm for await (const chunk of stream(foo)) {
response.write(chunk);
}
response.end();
↑みたいな感じでレスポンスに直接書いてってるやつって、一旦に変数に入れることって可能?
const chunks;
for await (const chunk of stream(foo)) {
// chunksにchunkを書き込んでいく
}
response.write(chunks);
res.end();
↑こんな感じに書きたくてさ
レスポンスのサイズを減らしたくてzlibのコード見たらレスポンスを直接圧縮するんじゃなくて、オブジェクトを圧縮してそんでレスポンスにパイプって感じに見えたもんで
ただ書き方がよく分からんくてね
response.write(chunk);
}
response.end();
↑みたいな感じでレスポンスに直接書いてってるやつって、一旦に変数に入れることって可能?
const chunks;
for await (const chunk of stream(foo)) {
// chunksにchunkを書き込んでいく
}
response.write(chunks);
res.end();
↑こんな感じに書きたくてさ
レスポンスのサイズを減らしたくてzlibのコード見たらレスポンスを直接圧縮するんじゃなくて、オブジェクトを圧縮してそんでレスポンスにパイプって感じに見えたもんで
ただ書き方がよく分からんくてね
758デフォルトの名無しさん
2022/02/20(日) 02:19:47.65ID:flSfy5Gd そんな感じのコードでやれると思うけど
ただ局所的な負荷を避けるStreamの利点が消えちゃうぞ
ただ局所的な負荷を避けるStreamの利点が消えちゃうぞ
759デフォルトの名無しさん
2022/02/20(日) 02:30:31.20ID:r6gz02kC > レスポンスにパイプ
stream.pipeline()関数を使えってこった
stream.pipeline()関数を使えってこった
760デフォルトの名無しさん
2022/02/20(日) 03:59:37.87ID:Y4d5gioW >>757
chunksに貯め込んでからzlib.gunzip()やzlib.inflate()を呼んでいたらメモリの無駄遣い
そこでzlib.createGunzip()やzlib.createInflate()で変換用streamを作って使う
それも昔はinput_stream.pipe(transform_stream).pipe(ourput_stream)と多段に繋げていたが
しかし速度差がある時のバッファリング問題もあるため一気に協調させることになり
今はpipeline(input_stream, transform_stream, ourput_stream, cb) と好きなだけ並べて書く
chunksに貯め込んでからzlib.gunzip()やzlib.inflate()を呼んでいたらメモリの無駄遣い
そこでzlib.createGunzip()やzlib.createInflate()で変換用streamを作って使う
それも昔はinput_stream.pipe(transform_stream).pipe(ourput_stream)と多段に繋げていたが
しかし速度差がある時のバッファリング問題もあるため一気に協調させることになり
今はpipeline(input_stream, transform_stream, ourput_stream, cb) と好きなだけ並べて書く
761デフォルトの名無しさん
2022/02/20(日) 13:07:52.69ID:G2bzmeXG 758 759 760
ありがとう
pipelineってやつ使うとよいみたいやね
調べてみますわ
ありがとう
pipelineってやつ使うとよいみたいやね
調べてみますわ
762デフォルトの名無しさん
2022/05/08(日) 08:50:47.73ID:Hc0pjWMa なんでchildprocessのイベントにはSIGINTが実装されてないんだろ
それでいて親から伝搬はするからdetached入れて切り離さないと落ちちまう
親同様にリスナー付けてexitを止められるようにするべきだと思うんだが
それでいて親から伝搬はするからdetached入れて切り離さないと落ちちまう
親同様にリスナー付けてexitを止められるようにするべきだと思うんだが
763デフォルトの名無しさん
2022/10/10(月) 18:43:55.67ID:MKhHDYOQ 相対パスでローカルモジュールをnpm iするとdependencieではfile:から始まる相対パスになるけど
実際これは完全に無視されて同時に作成されるnode_modules以下のsymlinkが読み込まれるんだな
なんでこんな実装になってんだ
実際これは完全に無視されて同時に作成されるnode_modules以下のsymlinkが読み込まれるんだな
なんでこんな実装になってんだ
764デフォルトの名無しさん
2022/10/10(月) 18:53:57.82ID:MKhHDYOQ いや更新時の参照用ならこれでいいのか
nodeのrequire/importとnpmのinstall/updateを混同してたわ
nodeのrequire/importとnpmのinstall/updateを混同してたわ
765デフォルトの名無しさん
2022/10/12(水) 13:25:20.11ID:pFlsWqq0 バックエンドnode.jsだけで食っていけますか
766デフォルトの名無しさん
2022/10/12(水) 13:50:41.51ID:PMp24lyt nodejs単体というよりOODBの管理ととトランザクションいじれるようになるのが一番じゃね?
767デフォルトの名無しさん
2022/10/20(木) 13:26:50.96ID:qyQuWblL >>765
可能と言えば可能だけど無理と言えば無理
結局何作って金稼ぐかに帰ってくる
PHPerがCRUDをLaravelで作って納品してるような事はNode.jsでも出来るけど
人口多いPHPでやれば良くないっすか?で詰む
改めてNode.jsを使う意味に戻ってくる
可能と言えば可能だけど無理と言えば無理
結局何作って金稼ぐかに帰ってくる
PHPerがCRUDをLaravelで作って納品してるような事はNode.jsでも出来るけど
人口多いPHPでやれば良くないっすか?で詰む
改めてNode.jsを使う意味に戻ってくる
768デフォルトの名無しさん
2022/10/21(金) 14:23:53.93ID:QgmICw4I この業界ってnodeよりphpのほうが多いの?
769デフォルトの名無しさん
2022/10/21(金) 17:27:25.06ID:yOIwuGST nodeはhttpサーバ目指してんのか
クロスプラットフォームのコマンドツール群目指してんのか
立ち位置が分かりにくくなってきてるなぁ。
クロスプラットフォームのコマンドツール群目指してんのか
立ち位置が分かりにくくなってきてるなぁ。
770デフォルトの名無しさん
2022/10/21(金) 17:37:31.50ID:gaBKDdgt771デフォルトの名無しさん
2022/10/21(金) 20:11:01.49ID:ho0gY/No 立ち位置としては単なるJSのランタイムだから別に迷走はしてない
あれもこれもできている現状は目標が達成できている状態だな
あれもこれもできている現状は目標が達成できている状態だな
772デフォルトの名無しさん
2022/10/21(金) 20:53:45.43ID:r+LUs0oF 自分が作りたいものを実現できるならそれでいいし
773デフォルトの名無しさん
2022/10/22(土) 10:24:29.33ID:nOyTQUKy またnpmとbowerに分かれるのか
774デフォルトの名無しさん
2022/10/22(土) 12:20:56.88ID:J0WzfMNr775デフォルトの名無しさん
2022/12/01(木) 15:22:36.40ID:gR9AoUvr npm@9にしたらupdate時にinstall済みのローカルモジュールがsymlinkから実ファイルコピーに書き換えられた
--install-linksの挙動変更だけじゃなかったのか
--install-linksの挙動変更だけじゃなかったのか
776デフォルトの名無しさん
2023/01/09(月) 13:40:55.90ID:pkwz3DCl substackがGithubリポジトリごと全部消してるけど何かあったのか
npmは基本消せないから今のところは支障ないけど
npmは基本消せないから今のところは支障ないけど
777デフォルトの名無しさん
2023/01/09(月) 15:20:15.81ID:QAUxwh3d スマホ持ってないのに2段階認証押し付けられて嫌気がしたからとか見かけたな
778デフォルトの名無しさん
2023/01/09(月) 19:48:04.21ID:pkwz3DCl 思ったよりしょうもなかったがバイク事故とかじゃなくてよかったわ
779デフォルトの名無しさん
2023/01/26(木) 12:54:12.49ID:O11XvwYM TSのバックエンドでファイル処理つったらstreamでいいのかな
BufferとかBlobは要らん子?pipeってのもあるらしくて混乱中
BufferとかBlobは要らん子?pipeってのもあるらしくて混乱中
780デフォルトの名無しさん
2023/01/26(木) 13:13:59.54ID:f8HqO3bH 最初はfs.writeFileとfs.readFileを使え
streamは小刻みにデータを処理する方法でpipeはその際の繋ぎ役
BufferやBlobはデータをメモリ上で扱う際の形式の一つ
TS以前にJSの基礎が怪しいから入門サイトなぞったほうがいいぞ
streamは小刻みにデータを処理する方法でpipeはその際の繋ぎ役
BufferやBlobはデータをメモリ上で扱う際の形式の一つ
TS以前にJSの基礎が怪しいから入門サイトなぞったほうがいいぞ
781デフォルトの名無しさん
2023/01/26(木) 13:26:12.10ID:O11XvwYM782デフォルトの名無しさん
2023/01/26(木) 14:46:29.69ID:gEyoKRRe BufferはNode固有のAPI
Blobは後から出てきたWeb (ブラウザ) のAPI
そしてTypedArrayBufferはECMAScriptのAPI
ストリームとかURLとか他にも重複してるのが多数ある
Blobは後から出てきたWeb (ブラウザ) のAPI
そしてTypedArrayBufferはECMAScriptのAPI
ストリームとかURLとか他にも重複してるのが多数ある
783デフォルトの名無しさん
2023/01/26(木) 15:24:22.66ID:G0G6dXL8784デフォルトの名無しさん
2023/02/10(金) 08:27:38.73ID:WC55EdF2 今ってORMはPrisma一択?
785デフォルトの名無しさん
2023/02/10(金) 10:01:03.33ID:9VW44qMw 勢いでは完全に負けてるが一応TypeORMもあるんじゃね
786デフォルトの名無しさん
2023/03/01(水) 14:51:23.19ID:dWfTEqUX util.aborted()が生えたけど用途がわからん
787デフォルトの名無しさん
2023/07/27(木) 23:08:16.03ID:nxFTW9tq nodejsでDBマネージャーとかログマネージャーとか、可能な限り同一インスタンスを維持したいインスタンスって一般的にどうしてますでしょうか。
class DbManager{
private constructor(){}
static instance = new DbManager();
}
staticクラスを使うなら上記の書き方でしょうが、一般的にstaticクラスは良くないとされています。
他の硬い言語ならDIを使うのですが、nodejsというか、javascriptだとDIライブラリはあまり使われていないように見える。
毎回クラスを作る時に引数で渡しまくるのも面倒ですし、なにか良い手順はありますでしょうか
class DbManager{
private constructor(){}
static instance = new DbManager();
}
staticクラスを使うなら上記の書き方でしょうが、一般的にstaticクラスは良くないとされています。
他の硬い言語ならDIを使うのですが、nodejsというか、javascriptだとDIライブラリはあまり使われていないように見える。
毎回クラスを作る時に引数で渡しまくるのも面倒ですし、なにか良い手順はありますでしょうか
788デフォルトの名無しさん
2023/07/28(金) 01:56:41.01ID:HsfaqfZ/ 常に引数で外部注入して生成するけど
引数にundefinedが来たら自動的にデフォルト注入を使って生成かな
引数にundefinedが来たら自動的にデフォルト注入を使って生成かな
789デフォルトの名無しさん
2023/07/28(金) 03:31:39.50ID:H/mKlItN >>788
ありがとうございます。
そうなると大半がデフォルトなんだから、もう毎回書かなくていいや〜 ってなってしまいそう…
とにかく、それでも引数でちゃんと渡す or デフォルトで自動生成する が常套手段みたいですね。
ありがとうございます。
そうなると大半がデフォルトなんだから、もう毎回書かなくていいや〜 ってなってしまいそう…
とにかく、それでも引数でちゃんと渡す or デフォルトで自動生成する が常套手段みたいですね。
790デフォルトの名無しさん
2023/07/28(金) 09:58:33.60ID:Za7BrkqV ファイル(モジュール)のトップレベルで
export const instance = new Xxx();
で十分
Javaなんかと違ってこれでもモックできるから大げさなDIなんかJS/TSにはいらんやろ
export const instance = new Xxx();
で十分
Javaなんかと違ってこれでもモックできるから大げさなDIなんかJS/TSにはいらんやろ
791デフォルトの名無しさん
2023/07/28(金) 10:36:22.85ID:HsfaqfZ/ singletonならそれでいいね
792デフォルトの名無しさん
2023/07/28(金) 12:39:37.08ID:Zbfe02RK793デフォルトの名無しさん
2023/08/18(金) 15:34:38.37ID:ccv6NoZV やめてっ!そこはビンカンなの!
794デフォルトの名無しさん
2023/10/13(金) 21:17:44.43ID:uv+WVTr3 おぉ(゚ロ゚屮)屮
795デフォルトの名無しさん
2024/06/07(金) 19:13:05.87ID:pMHNGLdE Prismaが快適すぎて最近はこれ使いたいがためにnode使ってるまであるわ
たまにEloquentとか使うとやりたいことができなさすぎて発狂しそうになる
たまにEloquentとか使うとやりたいことができなさすぎて発狂しそうになる
796デフォルトの名無しさん
2024/07/22(月) 05:05:01.65ID:lDVL1NiC わざわざランタイム側でsqlite内蔵する意味がわからん
暇なのか
暇なのか
レスを投稿する
ニュース
- 地方で深刻移動貧困の実態「車のために働いてる」手取り15万円のシンママ月3.2万円が軽自動車の維持費 [七波羅探題★]
- 【芸能】ジョン・トラヴォルタの25歳の愛娘、刺激的なルックで雑誌の表紙を飾る [湛然★]
- 【TV】藤本万梨乃アナがフジテレビ退社 結婚機に家庭と仕事の両立目指し 「めざましテレビ」「向上委員会」担当 [ぐれ★]
- 【調査】クレジットカード、1人何枚持つのが「平均的」?★3 [ひぃぃ★]
- ハローワーク職員、求職者になりすます 偽名で面接、就職 [蚤の市★]
- 【サッカー】カズ J復帰も!福島がオファー 鈴鹿無念の地域リーグ降格…59歳シーズン新天地はJ3? [征夷大将軍★]
- 【DAZN】フォーミュラGP【F1 2 3 SF P】Lap1816
- 【フジテレビ】2025 FORMULA 1【NEXT】Lap609
- 【U-NEXT】プレミアリーグ総合 ★39
- ハム専 エスコン日韓OB戦
- 巨専】
- とらせん IP
- 古市憲寿「スタジオでも中国批判して気持ち良くなってる人はいるが高市答弁で日本人は損してる。国益を害した」スタジオ凍りつく★2 [931948549]
- 🇯🇵日本人の70%「高市さんの責任ある積極財政サイコ~🤯」 インフレ加速+金利上昇+円安進行 を強烈に支持 [485983549]
- でびでびでびるの炎上あるじゃん?
- 【悲報】自転車乗り、4月から終わる 普通に乗ってても2万3000円くらい罰金を取られる [455031798]
- 【悲報】元乃木坂46センターのこ(24)、なんか変になる [329329848]
- ヤクルトスワローズって歯車噛み合ったら優勝できそうな感じあるよな
