検索
ホームページウェブフロントエンドjsチュートリアルnode.js&transloaditを使用してユーザーアバターコンポーネントを構築します

Building a User Avatar Component With Node.js & TransloadIt {{/if}}

ユーザー名を含む隠されたフィールドが含まれていることに注意してください。これをリクエストで送信して送信します。これにより、テンプレートで使用できます。

JavaScriptを追加して、JSONハンドルバーヘルパーを使用していくつかの可変初期化から始めます。

<span>var sig = {{{ json sig }}};</span>

これは、以前に見た最小限の統合初期化よりも複雑ですので、一度に少しずつ見てみましょう。

<span>$(function() {
</span>  <span>$('#avatar-form').transloadit({
</span>    <span>wait: true,
</span>    <span>params: JSON.parse(sig.params),
</span>    <span>signature: sig.signature,
</span>    <span>fields: true,
</span>    <span>triggerUploadOnFileSelection: true,
</span>    <span>autoSubmit: false,
</span>    <span>onSuccess: function(assembly) {
</span>      <span>$('img#avatar').attr('src', assembly.results.thumbnail[0].url + '?' + (new Date()).getTime() );
</span>      <span>var derivatives = {
</span>        <span>thumbnail : assembly.results.thumbnail[0].url,
</span>        <span>medium : assembly.results.medium[0].url,
</span>        <span>large : assembly.results.large[0].url
</span>      <span>};
</span>      $<span>.ajax({
</span>        <span>type: 'post',
</span>        <span>url: '/avatar',
</span>        <span>data: derivatives,
</span>        <span>success: function(resp){
</span>          <span>console.log(resp);
</span>        <span>}
</span>      <span>})
</span>    <span>}
</span>  <span>});
</span><span>});</span>
SIG変数からパラメーションと署名を引き込み、サーバーで生成し、JSONとしてエンコードしました。パラメーション部分はネストされているため、json.parse()を使用してオブジェクトに戻し、そこからtransloaditが関連するパラメーターを抽出します。

プラグインの初期化では、待機がtrueに設定されています。つまり、両方のファイルがアップロードされるまで待機します

それらは処理されました。

アセンブリ通知を使用して - 高度な使用法セクションで後で読むことができます - は、ファイルを処理するのを必ずしも待つ必要がないことを意味します。その場合、falseまで待機することができます。 フィールドは、処理用のファイルを送信する際に追加情報を含めたいことをプラグインに伝えるためにTrueに設定されています。私たちの場合、これはUsernameという名前の隠されたフォームフィールドです。これを認証されたユーザーのユーザー名に入力します。

TriggeruploadonFileselectionは、フォームが送信されたときではなく、ユーザーがファイルを選択したとすぐにファイルをTransLoaditに送信するために使用されます。 AutoSubmitは、結果がTransloaditから戻ってきたら、フォームの送信を防ぎます。
データがTursLoaditから戻ってきたときにOnSuccessのコールバックが起動され、アセンブリにデータがハッシュします。

アセンブリオブジェクトには、結果プロパティが含まれており、「ステップ」のそれぞれのプロパティが含まれます。これらには、ファイルオブジェクトの配列が含まれています。 1つのファイルのみをアップロードしているため、単一のアイテムを含む配列になります。各ファイルオブジェクトには、元のファイル名、メタ情報、TransLoaditからの一意のID、その他のビットとピースなど、多くのプロパティが含まれています。情報の全範囲を確認するには、コンソールにログアウトして見てみることができます。しかし、私たちが本当に興味を持っているのは、S3の生成された画像のURLを含むURLプロパティだけです。

対応するデリバティブの名前で3つのURLを抽出し、3つのデリバティブと対応するURLのハッシュを作成しています。 ユーザーに視覚的なフィードバックを提供するために、サムネイルのURLをつかみ、ページ上のアバターを変更して、新しく提供された画像を表示します。

最後に、Ajaxを使用して、そのデータを黙ってアプリケーションに戻します。

このデータをキャプチャするアバタールートは次のとおりです

生産中、おそらくこれを消毒して検証したいと思うでしょう。

ご覧のとおり、デリバティブ画像とそのURLのハッシュを取り、現在認証されているユーザーをReq.Userからつかみ、アバタープロパティを提供されたハッシュに設定し、ユーザーモデルを更新します。
<span>var sig = {{{ json sig }}};</span>
これは、1つの可能なアプローチにすぎません。フィードバックをすばやくするには、プラグインのOnResultコールバックを使用して、3つのデリバティブすべてを待つのではなく、生成されるとすぐにサムネイルを取得することをお勧めします。クライアントコードからAJAXコールを使用してサーバーを通知する代わりに、代わりに、クライアントの実行を続けるのではなく、アセンブリを背景に実行するという追加の利点を提供するアセンブリ通知機能を使用することをお勧めします。オプションの全範囲については、プラグインドキュメントを参照してください。
それは基本的なアプリケーションを締めくくります。忘れないでください、認証メカニズムを含むすべてのソースはGitHubで終わりました。

Advanced使用法

締めくくる前に、Transloaditのより高度な側面のいくつかを簡単に見てみましょう。

その他のクライアント側オプション

提供されたjQueryプラグインを使用する必要はありません。ドキュメントのコミュニティプロジェクトのセクションでは、ブートストラップ用のプラグイン、ドラッグN ’ドロップ用のプラグイン、角度のあるプラグイン、またはプレーンな古いXHRのサポートなど、多くの代替品を見つけることができます。

XHRは、より詳細に検討する価値があるかもしれません。これは、十分な柔軟性を提供する裸のボーンソリューションであり、独自のフィードバックを提供する必要があります。たとえば、ある種のアップロードインジケーターです。また、ファイルをアップロードしたら、1000msの間隔でサーバーを投票することによってアセンブリがいつ完了したかを判断しようとすることも注目に値します。

通知

ユーザーにアップロードが処理されるのを待つのではなく、ファイルの準備ができたら、通知を使用してアプリケーションをpingすることができます。このアプローチを使用して、ユーザーはアップロードが完了するまで待機する必要があります。

通知は、消費者の視点から簡単に実装できます。アセンブリの指示にnotify_urlを含めるだけです。
<span>var sig = {{{ json sig }}};</span>

URLがTursLoaditによってpingされると、JSONが提供するJSONには、通知が実際にそれらから来たことを確認するために使用できる署名フィールドが含まれます。 Auth Secretを使用して署名をデコードするだけです

開発中は、アセンブリ通知をテストするためにこのプロキシパッケージを利用するか、ngrokなどのトンネルサービスを使用することをお勧めします。

要約

この2部構成のシリーズでは、ファイル処理サービスであるTransloaditを包括的に見ています。 パート1では、いくつかの利点と短所を経験し、重要な概念を調べました。

この部分では、手を汚し、jQuery、node.js、expressを使用してシンプルなユーザーアバターコンポーネントを構築しました。

JQueryに制限されていません。実際、バニラJavaScriptソリューションまたはお気に入りのフレームワークを自由に使用できます。クライアント側のアプリケーションから使用する必要さえありません。また、サーバー側のテクノロジーに関しては、幅広いオプションがあります。うまくいけば、あなたは今、それが画像処理にどのように使用できるかについて感謝しています。

プロジェクトでTransLoaditを使用していますか?より良いサービスを知っていますか?コメントでお知らせください。

node.jsのユーザーアバターコンポーネントに関するよくある質問(FAQ) transloaditを使用してnode.jsでのアバターの外観をカスタマイズするにはどうすればよいですか?

node.jsでのアバターの外観をTursloaditでカスタマイズするには、アセンブリの指示のパラメーターを変更することが含まれます。アバターのサイズ、形、色を変更できます。たとえば、サイズを変更するには、「サイズ変更」パラメーターを調整します。形状を変更するには、「作物」パラメーターを使用します。 「透かし」と「テキスト」パラメーターをそれぞれ使用して、アバターに透かしまたはオーバーレイテキストを追加することもできます。 ?

実際のアプリケーションでユーザーアバターコンポーネントを実装するには、アプリケーションのユーザー登録またはプロファイルの更新プロセスに統合することが含まれます。ユーザーがプロファイルを登録または更新すると、TrussLoaditを使用してユーザーの詳細に基づいてアバターを生成できます。その後、データベースにアバターのURLを保存し、ユーザーのアバターを表示するために必要な場所に使用できます。 Transloaditには、アセンブリでエラーイベントをリッスンすることが含まれます。アセンブリプロセス中にエラーが発生した場合、TransLoaditは「エラー」イベントを発生します。このイベントを聞いて、適切に処理できます。たとえば、エラーを記録したり、ユーザーに通知したり、アセンブリを再試行したりすることをお勧めします。はい、TransLoaditはクラウドベースのサービスであり、Python、Ruby、PHP、とジャバ。これらのAPIを使用して、trusloaditを非node.jsアプリケーションに統合できます。 Transloaditには、アセンブリの指示を微調整し、リソースを効果的に管理することが含まれます。たとえば、生成されたアバターのサイズを縮小して、帯域幅とストレージスペースを節約できます。また、Transloaditの「Auto_retry」機能を使用して、アバター生成プロセスの信頼性を改善できる故障したアセンブリを自動的に再試行することもできます。

テストユーザーのアバターコンポーネントには、アセンブリの指示のための単体テストと、アプリケーションのTransLoaditとの統合の統合テストを作成することが含まれます。この目的のために、MochaやJestなどのテストフレームワークを使用できます。モックサービスを使用して、テスト中にトランスロードの動作をシミュレートすることもできます。アセンブリとTransLoadit APIキーの保護。 Transloaditの「署名認証」機能を使用して、認定されたクライアントのみがアセンブリを作成できるようにすることができます。また、TrussLoadit APIキーを安全に保存し、クライアント側のコードでそれらを公開しないでください。汎用性の高いメディア処理サービスと、ユーザーアバター生成以外の幅広いタスクをサポートしています。画像とビデオの処理、ファイルのアップロードなどに使用できます。単一のアセンブリで複数のタスクを連鎖させて、複雑なメディア処理ワークフローを作成することもできます。 TransLoaditでは、アセンブリで進行状況のイベントをリッスンすることが含まれます。 Transloaditは、アセンブリプロセス中に定期的に「進行状況」イベントを発します。これらのイベントを聞いて、アプリケーションのUIを更新して現在の進捗を反映できます。trusNoloaditでユーザーアバター生成プロセスをスケーリングするには、複数のアセンブリを使用し、トランスロードの使用量を効果的に管理することが含まれます。複数のアセンブリを作成してアバターを並行して処理できます。これにより、スループットが大幅に増加する可能性があります。また、Transloaditの使用量を監視し、必要に応じて計画を調整して、アプリケーションの負荷を処理するのに十分な能力があることを確認する必要があります。

以上がnode.js&transloaditを使用してユーザーアバターコンポーネントを構築しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
JavaScriptアプリケーション:フロントエンドからバックエンドまでJavaScriptアプリケーション:フロントエンドからバックエンドまでMay 04, 2025 am 12:12 AM

JavaScriptは、フロントエンドおよびバックエンド開発に使用できます。フロントエンドは、DOM操作を介してユーザーエクスペリエンスを強化し、バックエンドはnode.jsを介してサーバータスクを処理することを処理します。 1.フロントエンドの例:Webページテキストのコンテンツを変更します。 2。バックエンドの例:node.jsサーバーを作成します。

Python vs. Javascript:どの言語を学ぶべきですか?Python vs. Javascript:どの言語を学ぶべきですか?May 03, 2025 am 12:10 AM

PythonまたはJavaScriptの選択は、キャリア開発、学習曲線、エコシステムに基づいている必要があります。1)キャリア開発:Pythonはデータサイエンスとバックエンド開発に適していますが、JavaScriptはフロントエンドおよびフルスタック開発に適しています。 2)学習曲線:Python構文は簡潔で初心者に適しています。 JavaScriptの構文は柔軟です。 3)エコシステム:Pythonには豊富な科学コンピューティングライブラリがあり、JavaScriptには強力なフロントエンドフレームワークがあります。

JavaScriptフレームワーク:最新のWeb開発のパワーJavaScriptフレームワーク:最新のWeb開発のパワーMay 02, 2025 am 12:04 AM

JavaScriptフレームワークのパワーは、開発を簡素化し、ユーザーエクスペリエンスとアプリケーションのパフォーマンスを向上させることにあります。フレームワークを選択するときは、次のことを検討してください。1。プロジェクトのサイズと複雑さ、2。チームエクスペリエンス、3。エコシステムとコミュニティサポート。

JavaScript、C、およびブラウザの関係JavaScript、C、およびブラウザの関係May 01, 2025 am 12:06 AM

はじめに私はあなたがそれを奇妙に思うかもしれないことを知っています、JavaScript、C、およびブラウザは正確に何をしなければなりませんか?彼らは無関係であるように見えますが、実際、彼らは現代のウェブ開発において非常に重要な役割を果たしています。今日は、これら3つの間の密接なつながりについて説明します。この記事を通して、JavaScriptがブラウザでどのように実行されるか、ブラウザエンジンでのCの役割、およびそれらが協力してWebページのレンダリングと相互作用を駆動する方法を学びます。私たちは皆、JavaScriptとブラウザの関係を知っています。 JavaScriptは、フロントエンド開発のコア言語です。ブラウザで直接実行され、Webページが鮮明で興味深いものになります。なぜJavascrを疑問に思ったことがありますか

node.jsは、型を使用してストリーミングしますnode.jsは、型を使用してストリーミングしますApr 30, 2025 am 08:22 AM

node.jsは、主にストリームのおかげで、効率的なI/Oで優れています。 ストリームはデータを段階的に処理し、メモリの過負荷を回避します。大きなファイル、ネットワークタスク、リアルタイムアプリケーションの場合。ストリームとTypeScriptのタイプの安全性を組み合わせることで、パワーが作成されます

Python vs. JavaScript:パフォーマンスと効率の考慮事項Python vs. JavaScript:パフォーマンスと効率の考慮事項Apr 30, 2025 am 12:08 AM

PythonとJavaScriptのパフォーマンスと効率の違いは、主に以下に反映されています。1)解釈された言語として、Pythonはゆっくりと実行されますが、開発効率が高く、迅速なプロトタイプ開発に適しています。 2)JavaScriptはブラウザ内の単一のスレッドに限定されていますが、マルチスレッドおよび非同期I/Oを使用してnode.jsのパフォーマンスを改善でき、両方とも実際のプロジェクトで利点があります。

JavaScriptの起源:その実装言語の調査JavaScriptの起源:その実装言語の調査Apr 29, 2025 am 12:51 AM

JavaScriptは1995年に発信され、Brandon Ikeによって作成され、言語をCに実現しました。 2。JavaScriptのメモリ管理とパフォーマンスの最適化は、C言語に依存しています。 3. C言語のクロスプラットフォーム機能は、さまざまなオペレーティングシステムでJavaScriptを効率的に実行するのに役立ちます。

舞台裏:JavaScriptをパワーする言語は何ですか?舞台裏:JavaScriptをパワーする言語は何ですか?Apr 28, 2025 am 12:01 AM

JavaScriptはブラウザとnode.js環境で実行され、JavaScriptエンジンに依存してコードを解析および実行します。 1)解析段階で抽象的構文ツリー(AST)を生成します。 2)ASTをコンパイル段階のバイトコードまたはマシンコードに変換します。 3)実行段階でコンパイルされたコードを実行します。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません