用node.js&transloadit构建用户头像组件
{{/if}}
现在添加JavaScript,从使用我们的JSON Handlebars助手开始一些可变初始化开始:请注意,我们包括一个包含用户名的隐藏字段。我们将通过我们的请求发送将其发送到Trainsloadit,以便可以在我们的模板中使用。
>
<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,以告诉插件我们要在发送文件处理时要包含其他信息;在我们的情况下,这是一个名为用户名的隐藏表单字段,我们将使用身份验证的用户的用户名填充。> 当数据从TransloadIt返回时,> 用户选择文件,而不是在提交表单时,使用
> triggeruploadonfileselection将文件发送到发送载荷。一旦结果从Transloadit返回,AutoSubmit就可以防止其提交表格,因为我们将自己手动执行此操作。
或者,您可能希望使用SSL_URL属性,该属性与URL相同,但与HTTPS相同。>最后,我们使用Ajax将数据默默发布回我们的应用程序。>我们只是通过相应的派生名称提取三个URL,然后创建三个衍生物的哈希及其相应的URL。 为了向用户提供视觉反馈,我们还抓住了缩略图的URL,并在页面上修改了头像以显示新的删除图像。
这是捕获该数据的头像路线:
在生产中,您可能想对此进行消毒和验证。
如您所见,我们采集衍生图像及其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>
在开发过程中,您可能希望利用此代理包,以测试您的装配通知或使用隧道服务,例如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中文网其他相关文章!

热AI工具

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

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

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

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

Python和JavaScript开发者的薪资没有绝对的高低,具体取决于技能和行业需求。1.Python在数据科学和机器学习领域可能薪资更高。2.JavaScript在前端和全栈开发中需求大,薪资也可观。3.影响因素包括经验、地理位置、公司规模和特定技能。

如何在JavaScript中将具有相同ID的数组元素合并到一个对象中?在处理数据时,我们常常会遇到需要将具有相同ID�...

学习JavaScript不难,但有挑战。1)理解基础概念如变量、数据类型、函数等。2)掌握异步编程,通过事件循环实现。3)使用DOM操作和Promise处理异步请求。4)避免常见错误,使用调试技巧。5)优化性能,遵循最佳实践。

实现视差滚动和元素动画效果的探讨本文将探讨如何实现类似资生堂官网(https://www.shiseido.co.jp/sb/wonderland/)中�...

深入探讨console.log输出差异的根源本文将分析一段代码中console.log函数输出结果的差异,并解释其背后的原因。�...

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