Articles of dojo

dojo /使用NodeJS请求一个png图像数组缓冲区,并将图像返回给客户端

我正尝试使用NodeJS和ArcGIS Server REST提要中的dojo / request来请求png图像,并将图像返回给客户端。 我需要nodeJS为请求添加一个令牌作为查询参数,因为我的服务是安全的,我想通过节点而不是在资源服务器(ArcGIS Server 10.3)上控制它们的安全性。 图中没有nodeJS,png加载到浏览器中。 这是一个调用返回一个PNG图像的(打开的)示例,使用它们的标准REST提要: https : //sampleserver6.arcgisonline.com/arcgis/rest/services/911CallsHotspot/MapServer/1/images/257104fa1b21d7b483c160ee8f3943bb 我正在使用dojo / request来访问这个资源。 看起来png图像正在回到节点,但是当我res.send()回到客户端时,我在Fiddler中得到了一个“不是图像”。 我可以在hexview中看到PNG头文件,以及IHDR和IEND,但显然编码(?或其他)与直接从ArcServer返回资源时不同。 当从节点返回的客户端接收到png时,内容长度比直接从ArcServer直接发送相同的png要less一些。 (Node默认尝试使用Transfer-Encoding:Chunked,我将content-length设置为响应的长度,所以它一次发送,我相信这是客户端期望的行为)。 ESRI(ArcGIS Server)有一个新的示例存根,它正是我想要做的,然而他们使用esri / request(build立在dojo / request)客户端,并利用Blob库为客户端创build正确的响应。 https://developers.arcgis.com/javascript/jssamples/data_requestArrayBuffer.html 我们可以看到他们使用handleAs:“arrayBuffer”,我已经尝试了dojo / request,并且它对返回的png的内容似乎没有任何区别。 当他们收到响应时,他们创build一个新的Blob,然后用FileReader(我有一个节点端实现)读取它作为数据URL,并直接使用该结果作为png。 我已经尝试过ad-nausuem来复制这个,但是看起来节点没有一个可靠的Blob库(我没有尝试过“Blob”),并且我在节点中读到了你应该使用Buffers。 不pipe我传递给fileReader,我得到的错误“不能读取文件”(我已经尝试所有的fileReader方法)。 fileReader库: https : //www.npmjs.com/package/filereader ESRI代码: esriRequest(url, {handleAs: "arrayBuffer"}).then(function(response) { reader.readAsDataURL(new Blob([response], { type: "image/png" })); //reader.result is png ready to use client […]

如何在Node.js中引导Dojo 1.7?

我已经看过了dojo-node模块(https://github.com/agebrock/dojo-node),作者说Dojo 1.7本地支持Node.js。 Dojo 1.7中有一个configNode.js文件,但是我不确定如何使用它来使Dojo正常运行。 http://download.dojotoolkit.org/release-1.7.0b1/dojo-release-1.7.0b1/dojo/_base/ 有人能把我指向正确的方向吗? 也许给我一个小例子呢? 感谢任何帮助,我可以得到。

在node.js中有dojo.hitch是否相等

我正在寻找一种function,这种function绑定“这个”。 虽然写起来很简单,但在编写或使用dojo之前,我想确保它不是node.js环境中stream行模块的一部分。

如何使用nodejs做dojo构build?

我目前正在使用dojotoolkit及其构build系统。 我在http://dojotoolkit.org/documentation/tutorials/1.8/build/阅读1.8的新build构教程。 在教程中,它提到可以使用nodejs加速构build。 构build工具本身依赖于Java(也可以select使用Node.js来实现更快的构build),因此请确保已经安装了该工具。 但它没有提到如何做到这一点。 有人知道这是如何工作?

是否已有用于支持Dojo AMD,NodeJS require和Browser window的预先存在的代码

我有一些代码,支持编写一个微库,并在Dojo AMD,NodeJS require()和浏览器正常窗口中加载它。[但是我想知道是否已经build立了这样的方法,我只是重新发明了轮子,或者如果代码是值得的。 我在互联网上做了一个很好的search。 我创build的代码是在https://gist.github.com/forbesmyester/5293746 ,如果人们有评论,很好,但我更有兴趣找出是否有适当的方法来做到这一点。

连锁的承诺没有通过拒绝

我有一个问题,理解为什么拒绝不通过承诺链传递,我希望有人能够帮助我理解为什么。 对我来说,将function附加到一系列的承诺意味着我的意图是我依靠一个原始的承诺来实现。 这很难解释,所以让我首先展示一个我的问题的代码示例。 (注意:这个例子是使用Node和延迟节点模块,我用Dojo 1.8.3testing过,结果相同) var d = require("deferred"); var d1 = d(); var promise1 = d1.promise.then( function(wins) { console.log('promise1 resolved'); return wins;}, function(err) { console.log('promise1 rejected'); return err;}); var promise2 = promise1.then( function(wins) { console.log('promise2 resolved'); return wins;}, function(err) { console.log('promise2 rejected'); return err;}); var promise3 = promise2.then( function(wins) { console.log('promise3 resolved'); return wins;}, […]