搜索
首页web前端js教程用node.js&transloadit构建用户头像组件

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

请注意,我们包括一个包含用户名的隐藏字段。我们将通过我们的请求发送将其发送到Trainsloadit,以便可以在我们的模板中使用。>

现在添加JavaScript,从使用我们的JSON Handlebars助手开始一些可变初始化开始:

<span>var sig = {{{ json sig }}};</span>
现在,我们将transloadit插件绑定到上传表格:>

这比我们之前查看的最小整合初始化更为复杂,所以让我们一次浏览一下。
<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,以告诉插件我们要在发送文件处理时要包含其他信息;在我们的情况下,这是一个名为用户名的隐藏表单字段,我们将使用身份验证的用户的用户名填充。

> 用户选择文件,而不是在提交表单时,使用

> triggeruploadonfileselection将文件发送到发送载荷。一旦结果从Transloadit返回,AutoSubmit就可以防止其提交表格,因为我们将自己手动执行此操作。
> 当数据从TransloadIt返回时, 汇编对象包含一个结果属性,进而包含我们每个“步骤”的属性。这些包含一个文件对象。由于我们仅上传一个文件,因此它们将是包含一个项目的数组。每个文件对象都包含许多属性,包括原始文件名称,元信息,transloadit的唯一ID以及其他位和零件。要查看全部信息,您可能希望将其记录到控制台中并查看。但是,我们真正感兴趣的只是URL属性,该属性包含S3上生成图像的URL。
或者,您可能希望使用SSL_URL属性,该属性与URL相同,但与HTTPS相同。

>我们只是通过相应的派生名称提取三个URL,然后创建三个衍生物的哈希及其相应的URL。 为了向用户提供视觉反馈,我们还抓住了缩略图的URL,并在页面上修改了头像以显示新的删除图像。
>最后,我们使用Ajax将数据默默发布回我们的应用程序。

这是捕获该数据的头像路线:

在生产中,您可能想对此进行消毒和验证。

如您所见,我们采集衍生图像及其URL的哈希,从req.user获取当前身份验证的用户,将Avatar属性设置为提供的哈希,然后更新用户模型。

这只是一种可能的方法。为了获得更快的反馈,您可能需要使用插件的on Result回调来获取缩略图,而不是等待所有三个导数。您可能不喜欢使用“客户代码”通知服务器的AJAX调用,而是更喜欢使用“汇编通知”功能,这为在后台运行汇编而不是在客户端上执行执行提供了其他好处。请咨询插件文档以获取各种选项。

>总结了我们的基本应用。别忘了,所有来源(包括身份验证机制)都在GitHub上结束。
<span>var sig = {{{ json sig }}};</span>
高级用法

在总结之前,让我们简要介绍一下Transloadit的几个更高级的方面。

其他客户端选项

>您不必使用提供的jQuery插件。在文档的“社区项目”部分中,您会发现许多替代方案,包括用于bootstrap的插件,一个用于拖动n'drop,一个角度插件或对普通旧Xhr的支持等等。

> XHR可能值得您更详细地研究。这是一种裸露的解决方案,可以提供足够的灵活性,同时要求您提供自己的反馈,例如某种上传指示器。还值得注意的是,一旦上载文件,它将通过以1000ms的间隔进行轮询服务器来确定何时完成组件。

>

>通知

>您可以在文件准备就绪时使用通知来使用通知来处理应用程序。使用这种方法,用户只需要等到上传完成。

> 从消费者的观点易于实现

>通知;只需将Notify_url与您的汇编说明一起包含:

>
<span>var sig = {{{ json sig }}};</span>
当您的URL被Transloadit刺穿时,提供的JSON将包含一个签名字段,您可以使用该字段来验证通知确实来自它们。只需使用您的euth Secret解码签名。

在开发过程中,您可能希望利用此代理包,以测试您的装配通知或使用隧道服务,例如Ngrok。

摘要

在这个两部分的系列中,我们对transloadit进行了全面研究。

在第一部分中,我们经历了一些优点和缺点,然后查看了关键概念。

在这一部分,我们弄脏了手,并使用jquery,node.js和express构建了一个简单的用户头像组件。

>您不仅限于jQuery,实际上,您可以自由使用香草JavaScript解决方案或您喜欢的框架。您甚至不需要从客户端应用程序中使用它,而在服务器端技术方面,您有多种选择。不过,希望您现在已经对如何用于图像处理有所了解。

>

您是否在项目中使用Transloadit?您知道更好的服务吗?在评论中让我知道。

>

>常见问题(常见问题解答)关于node.js中的用户avatar组件,带有transloadit

>如何自定义AVATAR在Node.js中的外观?您可以更改头像的大小,形状和颜色。例如,要更改大小,请调整“调整大小”参数。要改变形状,请使用“作物”参数。您还可以分别使用“水印”和“文本”参数在头像上添加水印或覆盖文本。

>如何在Neal-World应用程序中使用Transloadit中的Node.js中实现用户Avatar组件?

在现实世界应用程序中实现用户头像组件涉及将其集成到应用程序的用户注册或配置文件更新过程中。当用户注册或更新其配置文件时,您可以根据用户的详细信息使用Transloadit来生成头像。然后,您可以将阿凡达的URL存储在数据库中,并在需要显示用户的头像的任何地方使用它。

>在使用transloadit用于用户avatar生成时如何处理错误? Transloadit涉及聆听组件中的错误事件。如果在组装过程中发生错误,则Transloadit将发出“错误”事件。您可以聆听此活动并适当处理它。例如,您可能需要记录错误,通知用户或重试汇编。

>

>我可以在非node.js环境中使用transloadit用于用户头像生成吗?和Java。您可以使用这些API将traadlotit集成到您的nonnode.js应用程序中。

>如何通过Transloadit? Transloadit涉及对您的组装说明进行微调并有效地管理您的资源。例如,您可以减小生成的头像的大小,以节省带宽和存储空间。您还可以使用TransLoadit的“ auto_retry”功能自动重试的失败的组件,从而可以提高您的头像生成过程的可靠性。

>

>我如何测试带有transloadit的node.js中的用户avatar组件?

测试用户头像组件涉及为您的汇编说明创建单元测试,并为应用程序与Transloadit集成的集成测试。您可以为此目的使用摩卡咖啡或嘲笑等测试框架。您还可以使用模拟服务在测试过程中模拟transloadit的行为。

>如何使用transloadit?

>

>使用transloadit确保用户头像生成过程涉及使用安全的URL来使用安全URL您的组件并保护您的traxloadit API键。您可以使用TransLoadit的“签名身份验证”功能来确保只有授权客户端才能创建汇编。您还应该安全地存储transLoadit api键,并且永远不要将它们曝光在客户端代码中。

我可以将transloadit用于其他媒体处理任务以外的其他媒体处理任务吗?多功能媒体处理服务,除了用户头像生成以外,它还支持广泛的任务。您可以将其用于图像和视频处理,文件上传等。您甚至可以在单个组件中将多个任务链在一起以创建复杂的媒体处理工作流程。

如何通过TransloadIt?

>监视用户Avatar生成的进度,如何监视用户头像生成的进度?随着Transloadit的涉及聆听组装中的进度事件。 Transloadit在组装过程中定期发射“进度”事件。您可以收听这些事件并更新应用程序的UI以反映当前的进度。

>如何使用transloadit缩放用户头像生成过程?您可以创建多个组件以并行处理化身,这可以大大增加您的吞吐量。您还应该监视您的变速箱使用情况并根据需要调整计划,以确保您有足够的能力处理应用程序的负载。

以上是用node.js&transloadit构建用户头像组件的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
使用Next.js(后端集成)构建多租户SaaS应用程序使用Next.js(后端集成)构建多租户SaaS应用程序Apr 11, 2025 am 08:23 AM

我使用您的日常技术工具构建了功能性的多租户SaaS应用程序(一个Edtech应用程序),您可以做同样的事情。 首先,什么是多租户SaaS应用程序? 多租户SaaS应用程序可让您从唱歌中为多个客户提供服务

如何使用Next.js(前端集成)构建多租户SaaS应用程序如何使用Next.js(前端集成)构建多租户SaaS应用程序Apr 11, 2025 am 08:22 AM

本文展示了与许可证确保的后端的前端集成,并使用Next.js构建功能性Edtech SaaS应用程序。 前端获取用户权限以控制UI的可见性并确保API要求遵守角色库

JavaScript:探索网络语言的多功能性JavaScript:探索网络语言的多功能性Apr 11, 2025 am 12:01 AM

JavaScript是现代Web开发的核心语言,因其多样性和灵活性而广泛应用。1)前端开发:通过DOM操作和现代框架(如React、Vue.js、Angular)构建动态网页和单页面应用。2)服务器端开发:Node.js利用非阻塞I/O模型处理高并发和实时应用。3)移动和桌面应用开发:通过ReactNative和Electron实现跨平台开发,提高开发效率。

JavaScript的演变:当前的趋势和未来前景JavaScript的演变:当前的趋势和未来前景Apr 10, 2025 am 09:33 AM

JavaScript的最新趋势包括TypeScript的崛起、现代框架和库的流行以及WebAssembly的应用。未来前景涵盖更强大的类型系统、服务器端JavaScript的发展、人工智能和机器学习的扩展以及物联网和边缘计算的潜力。

神秘的JavaScript:它的作用以及为什么重要神秘的JavaScript:它的作用以及为什么重要Apr 09, 2025 am 12:07 AM

JavaScript是现代Web开发的基石,它的主要功能包括事件驱动编程、动态内容生成和异步编程。1)事件驱动编程允许网页根据用户操作动态变化。2)动态内容生成使得页面内容可以根据条件调整。3)异步编程确保用户界面不被阻塞。JavaScript广泛应用于网页交互、单页面应用和服务器端开发,极大地提升了用户体验和跨平台开发的灵活性。

Python还是JavaScript更好?Python还是JavaScript更好?Apr 06, 2025 am 12:14 AM

Python更适合数据科学和机器学习,JavaScript更适合前端和全栈开发。 1.Python以简洁语法和丰富库生态着称,适用于数据分析和Web开发。 2.JavaScript是前端开发核心,Node.js支持服务器端编程,适用于全栈开发。

如何安装JavaScript?如何安装JavaScript?Apr 05, 2025 am 12:16 AM

JavaScript不需要安装,因为它已内置于现代浏览器中。你只需文本编辑器和浏览器即可开始使用。1)在浏览器环境中,通过标签嵌入HTML文件中运行。2)在Node.js环境中,下载并安装Node.js后,通过命令行运行JavaScript文件。

在Quartz中如何在任务开始前发送通知?在Quartz中如何在任务开始前发送通知?Apr 04, 2025 pm 09:24 PM

如何在Quartz中提前发送任务通知在使用Quartz定时器进行任务调度时,任务的执行时间是由cron表达式设定的。现�...

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
3 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。

EditPlus 中文破解版

EditPlus 中文破解版

体积小,语法高亮,不支持代码提示功能

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境