{{/if}}
现在添加JavaScript,从使用我们的JSON Handlebars助手开始一些可变初始化开始:请注意,我们包括一个包含用户名的隐藏字段。我们将通过我们的请求发送将其发送到Trainsloadit,以便可以在我们的模板中使用。
>
<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,以告诉插件我们要在发送文件处理时要包含其他信息;在我们的情况下,这是一个名为用户名的隐藏表单字段,我们将使用身份验证的用户的用户名填充。> 当数据从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>当您的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中文网其他相关文章!

JavaScript可用于前端和后端开发。前端通过DOM操作增强用户体验,后端通过Node.js处理服务器任务。1.前端示例:改变网页文本内容。2.后端示例:创建Node.js服务器。

选择Python还是JavaScript应基于职业发展、学习曲线和生态系统:1)职业发展:Python适合数据科学和后端开发,JavaScript适合前端和全栈开发。2)学习曲线:Python语法简洁,适合初学者;JavaScript语法灵活。3)生态系统:Python有丰富的科学计算库,JavaScript有强大的前端框架。

JavaScript框架的强大之处在于简化开发、提升用户体验和应用性能。选择框架时应考虑:1.项目规模和复杂度,2.团队经验,3.生态系统和社区支持。

引言我知道你可能会觉得奇怪,JavaScript、C 和浏览器之间到底有什么关系?它们之间看似毫无关联,但实际上,它们在现代网络开发中扮演着非常重要的角色。今天我们就来深入探讨一下这三者之间的紧密联系。通过这篇文章,你将了解到JavaScript如何在浏览器中运行,C 在浏览器引擎中的作用,以及它们如何共同推动网页的渲染和交互。JavaScript与浏览器的关系我们都知道,JavaScript是前端开发的核心语言,它直接在浏览器中运行,让网页变得生动有趣。你是否曾经想过,为什么JavaScr

Node.js擅长于高效I/O,这在很大程度上要归功于流。 流媒体汇总处理数据,避免内存过载 - 大型文件,网络任务和实时应用程序的理想。将流与打字稿的类型安全结合起来创建POWE

Python和JavaScript在性能和效率方面的差异主要体现在:1)Python作为解释型语言,运行速度较慢,但开发效率高,适合快速原型开发;2)JavaScript在浏览器中受限于单线程,但在Node.js中可利用多线程和异步I/O提升性能,两者在实际项目中各有优势。

JavaScript起源于1995年,由布兰登·艾克创造,实现语言为C语言。1.C语言为JavaScript提供了高性能和系统级编程能力。2.JavaScript的内存管理和性能优化依赖于C语言。3.C语言的跨平台特性帮助JavaScript在不同操作系统上高效运行。

JavaScript在浏览器和Node.js环境中运行,依赖JavaScript引擎解析和执行代码。1)解析阶段生成抽象语法树(AST);2)编译阶段将AST转换为字节码或机器码;3)执行阶段执行编译后的代码。


热AI工具

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

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

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

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

热门文章

热工具

WebStorm Mac版
好用的JavaScript开发工具

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

Dreamweaver CS6
视觉化网页开发工具

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。