【非同期】node.js part.1【javascript】
Node.js はスケーラブルなネットワークアプリケーションを構築するために設計された非同期型のイベント駆動の JavaScript 環境です。 npm -g install xxxx した後 yarn global list したらxxxxはリストに現れるもの? あるいは逆に yarn global add yyyy とした後、 npm -g list としたらyyyyはリストに現れるもの?? browserifyで実験したらなんかyarnで入れたつもりがnpmのリストに出てこなかった気がするんだけど おま環? バージョン: D:\proj_picbbs\TypeScript_x01\_scrap>node --version v12.18.0 D:\proj_picbbs\TypeScript_x01\_scrap>npm --version 6.12.0 D:\proj_picbbs\TypeScript_x01\_scrap>yarn --version 1.22.4 フロントエンドのnode.jsでフォームを連動させたいんだけど チュートリアルとかサンプルを教えてクレメンス 一つのセレクトメニューを選んだら、もう一つのセレクトメニューも連動して選択される。 みたいなやつ 「node.js フォーム 連動」 とかでもあまり情報無いし・・ node js からシステムデフォルトのファイルエクスプローラで指定フォルダなりファイルなりを表示したい場合って、 os 別に場合分けするしかないんか…? 用意されてたり、用意されてるライブラリだったりはない感じですかね >>67 fsっていうライブラリがbult inで入ってる そういうことね nodejsはサーバーサイドで利用するフレームワークだからguiを使用するような実装するは無理そう election nwとか使うんだったらhtmlでええやん html使えば指定ファイルをシステムデフォルトのファイルマネージャーで開けるの? ファイルマネージャーもいいけど、頼むから ドラッグ&ドロップ にも対応しておいてね。 Electronなら独自APIにelectron.shell.showItemInFolderというのがあるけどnode.js自体にはない https://www.npmjs.com/package/open-file-explorer これなんかも結局OS別にspawnしてるしなぁ Boost.asio使ってるのでlibuvはかぶってますしねえ。 Goと比較した場合のAPIサーバーを作る場合のメリットを教えて。フロントはvueを使っている バックエンドで prisma とかを使う場合、フロントと型を共有できる。 一つの言語で書くことができる それくらいしかないと思う。 >>81 あざます なるほど、 あとはlodashとかあるしコレクション操作がGoより簡単とか? webフロントしかいじれない人にAPIを短期間で開発してもらう必要があって TS + node.jsでやってもらおうかと思ったけど 今の会社のAPIがほぼGoでできてるから、どうしたものか悩ましかったんすよねぇ。 Prisma名前しか知らなかったけどいいすねぇ。すでにプロダクション環境で使われるレベルなのかな。 loadash 相当のライブラリは go にもあるだろうからそれが理由で ts / js を採用するのは良くないかも。 でもフロントしか経験がない人間に任せるとしたら ts nodeの組み合わせでいいと思う。 あるある技術構成は express or fastify / prisma / firebase auth になるかな。 apiサーバーとしてのパフォーマンス要件が特にない場合は prisma 使えばいいと思うよ。 >>83 あざます。参考になる・・。 ここでのprismaは TypeORMと同じ立ち位置? リレーションを使ったときにタイプセーフになる(らしい)のはいいなぁ。 type ormと同じ立ち位置だけど、厳密には色々ちがう https://www.prisma.io/docs/concepts/more/comparisons/prisma-and-typeorm ↑に type orm との比較が書いてある。少しだけ複雑なアプリケーションを両方を使用して書けばprismaのメリットがわかると思う >>84 めちゃくちゃ遅レスだけど、ありがとう prismaを管理画面で試験的に使い始めたけどいい感じですわ。 非同期で得するのは、ネットワークへファイルを送り出すときくらいのような気がするのですよ。 音声再生のライブラリ漁ってみたがあんまり良いのないのね… コマンドラインツールに音声ファイル丸投げするような感じのやつばっかり ってか、VSCode の Extension で音だすやつ片っ端から何使ってるのか見たけど、 少なくとも Windows 環境では全部コマンドラインツールに丸投げして音声再生してた マルチスレッドで多重再生するみたいなの Java で作ってたんだけど、そういうのは難しそうなのかな js 自体がシングルスレッドだから、別プロセスの何かに頼るしかないんだろうけど 今はworker_threadがあるからマルチスレッド使えるぞ ネイティブ(c/c++)アドオン作るのがめんどいんじゃね 今やりたいのは、単純な通知音ですね ただ、音って割といろいろな場面で使うので、 ある程度使い回しの効くライブラリがあるといいなと思って調べてました 音が何個かかぶっても、汚い音にならないといいかなーと イメージ的には下みたいな感じの事ができると嬉しいです ファイル名指定するだけお手軽再生 メモリ上にいつロードするかを指定(ストリーム or プリロード) 1つの音声ファイルに対して多チャンネル割当できて、多重再生できる チャンネル番号(スレッド)ごとに再生、ストップ、ループ、回数指定ループ sync / async 両対応 タイプ音とかゲームの効果音なんかは、 別プロセスにファイル名指定で投げるのってかなり非効率で、 音源管理のスレッドでプリロードしておいて、 後はそのロードしたデータを毎回再生しにいくだけの方がいいかなと思うのですよ そういう効率的な再生ライブラリは Node.js には見当たらないなーと思いまして (喫緊の通知音だけに関してみるとあれですけど) ウェブサイトのHTML取得までできたが、その中身のtdタグとかの内容取得がわからん ネットでちょっと調べてcherio使うまでは分かったが 初心者向けの本買えば載ってるかなやりかた 伝助のデータ取得したいだけなんだが EJSとやらを少しいじってまあ面白いなあと しかしサーバー関連って毎回バケツの底ぶち抜くようなもんで 個人のPCでやるのは度胸いるなあ 勘違いしてたらスマンなんだが教えてくれ。 jsってボケボケテキトーに書いてたらめちゃくちゃな順番で実行されてくんだけど、async/await使うとキッチリ順番通りに動いていくってことであってる? 特定のファイル名のcsvファイルを再起処理で探してきて、jsonに変換して送信するって処理書いてみたんだけど… 順番に実行してもらいたいところにasyncawait付け足してったらうまく動いたからさ。 ググると「非同期処理でasyncawait使う」って書いてあるのにasyncawait使ったら順番通りに実行されたから混乱してしまって。 js難しすぎん? vbaしか書いたことないからハァ〜さっぱりさっぱり! やっぱり俺にはエクセルvbaがお似合いだぜ 非同期処理でasyncawait使う ↑をもちっと詳しく書くと↓ 非同期処理を待ち合わせるためにasync/await使う 非同期処理の完了をawaitで待ち合わせたから順番通りに実行されたんやろ 待ち合わせる ⇐これ知人にも言われたけど、全然ピンとこないんだよね… どういうこっちゃ?状態 もうちょいちゃんと読み込んでトレーニングしないと使いこなせそうにないな… 非同期処理は基本待ってくれない awaitを付けると文字取り待ってくれる 程度のイメージ async await使って動かしたい順番通りに動くようになったぜ! csvから加工したjsonも送れるようになったぜ! しかしforeverとかいうのがまったく動かねぇぜ! 先はなげえぜ! asyncよりもpromiseのがわかりやすくね? 練習にnodeでコンソールアプリ作ってるんだけど2日くらい悶々としてる。 一度非同期処理に入るとフラグ管理するか全部非同期メソッドにしないとダメなんだな。 jsdomをインストールしようとしたら Unsupported engine package: 'jsdom@20.0.0', required: { node: '>=14' }, とインストールできなかった。古いjsdomのはインストールできる Node.jsは14から一部のOSでインストールできなくなったのに、14以降でないと最新のjsdomをインストールできない 質問です nodejsで自作モジュールを作って使ってるのですが、自作モジュールにも「const socket = require('websocket')」のようにモジュールを利用しています。 メインのスクリプトでnpm installしたときに自作モジュールも同じくnpm installさせたいのですが何か方法はありますか? ちなみに、npmのスクリプトで「"install": "npm i --no-save && cd user_lib && npm i --no-save"」と記載してnpm run installした場合、メインのnpm iは実行されるのですが2つ目の自作モジュールのnpm iが失敗します。 nodejsも使ってみないとなあと思うけどWSL2で運用できるのかな? 結局仕事で使ってるPHPに戻りそうだけどJSによるWEBやDOMの操作は知ってるに越したこと無いし レベル低過ぎて恥ずかしいけどProgateのNode.js終えた レッスンIとIIがとても難しくて挫折しそうになったけど周回して時間かけたら理解出来て、それからレッスンVIまでスムーズだった レッスンIIIはMySQL組み合わせてテーブルをWEBの操作に応じて編集する内容だけどIとII分かってたら難しくない レッスンIVはデバッグの仕方で意図的に混ぜてあるミスを直すんだがI、II、III理解してたら簡単だった レッスンIVはexpressでログインの管理、これは難しかったし長かったけど一回で理解出来た レッスンVIはその応用でbcryptを使いパスワードをハッシュ化させてWEB入力のパスワードと比較する内容だけどまぁ簡単だった 唯一難しかったのはejsファイルにif文書いて引数入れるとres.renderでそのejsファイルを呼び出すとこにもその引数定義しないといけないしejs側にforEach書いたらそのejsファイル呼び出すjs側にもforEachに対応したオブジェクト書かないと駄目なとこ progateは超初心者向けだけどその中でもNode.jsは一番難しいらしくて、覚悟してたけど最初から挫折しそうになって自信無くして、でもそこ超えたらスムーズに理解出来たのがとても嬉しい😇 次はreactやって、それからProgate卒業してreact-native勉強してAndroidアプリ作りたい 嬉しいわ ここの皆ならProgateのNode.jsとか鼻で笑っちゃう内容なんだろ?凄いね read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる