Tag: azure

var azure = require('azure-storage'); 不工作

立足于官方指南在这里https://azure.microsoft.com/en-us/documentation/articles/storage-nodejs-how-to-use-blob-storage/我明白,与js使用Azure的存储是常见的但是,我不能让它工作。 在我的webRole应用程序中,我已经使用npm install azure-storage安装了azure存储,就像指南中指出的一样,并获得了node-modules库。 现在我的应用程序看起来像这样: 为了避免混淆,我将添加我的完整app.js文件的应用程序: 'use strict'; /** * @ngdoc overview * @name yapp * @description * # yapp * * Main module of the application. */ angular .module('yapp', [ 'ui.router', 'snap', 'ngAnimate', 'ngStorage' ]) .config(function ($stateProvider, $urlRouterProvider) { var azure = require('azure-storage'); $urlRouterProvider.when('/dashboard', '/dashboard/overview'); $urlRouterProvider.otherwise('/login'); $stateProvider .state('base', { abstract: true, url: '', templateUrl: […]

通过Visual Studio部署到Azure Cloud Service时,未设置环境variables

在Azure云服务中遇到一些环境variables问题。 我想通过ServiceDefentition.csdef文件在部署期间设置一个“NODE_ENV”环境variables。 该variables是由我的node.js应用程序通过process.env.NODE_ENV读入。 这个文档不是非常广泛的(因为这似乎是一个非常简单的事情),但这是我一直以来: link1 link2 我有的ServiceDefinition文件的部分是以下内容: <?xml version="1.0" encoding="utf-8"?> <ServiceDefinition name="userApiServer" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition" schemaVersion="2015-04.2.6"> <WebRole name="userApiWebRole" vmsize="Large"> … <Runtime> <Environment> <Variable name="NODE_ENV" value="dev" /> </Environment> </Runtime> … </WebRole> </ServiceDefinition> 我尝试了很多变化; 设置启动任务下的envvariables,而不是运行时,使用xpaths来configuration设置,但他们似乎并没有为我创buildenvvariables。 当用xpaths方法搞乱时,我发现我的configuration设置是在实例上创build的,所以正在读取定义文件。 是否有任何常见(或不常见)的疑难杂症或隐藏的细节,我错过了,因为对于显然非常简单的东西,我有很多麻烦。

Azure构build中的Node.js错误

我从Visual Studio 2015社区版创build了一个全新的ASP.NET 5项目。 我在这里检查代码到BitBucket的存储库中: https://bitbucket.org/admin_at_scanburapps/sandbox-repo 我在Azure上创build一个新的Web应用程序,并从此存储库安装部署。 Azure拉出代码,开始build设,并给我这个错误: > module.js:339 > throw err; > ^ > > Error: Cannot find module 'lodash' > at Function.Module._resolveFilename (module.js:337:15) > at Function.Module._load (module.js:287:25) > An error has occurred during web site deployment. > at Module.require (module.js:366:17) > at require (module.js:385:17) (请参阅下面的更多输出) 我已经完成了npm install和npm重复数据删除,并在node_modules中进行了检查。 我也validation了lodash的确在node_modules下find。 所以我很困惑为什么找不到lodash模块。 任何人都可以猜测问题是什么? 注意:完整的构build日志如下所示: > […]

如何正常停止为Nodejs编写的Azure WebJob

我知道使用setting.job文件可以正常closuresAzure WebJob 。 这是我的文件: { "schedule": "0 */10 * * * *", "stopping_wait_time": 120 } 我用JavaScript写了一个WebJob。 WebJob运行在Nodejs上。 它按需configuration,每隔10分钟由setting.job触发。 出于某种原因,我的setting.job文件不能正常closuresWebJob。 它总是失败。 也许我错过了一些东西,或者完全不了解WebJob的closures是如何结束的,但是我在run.js中做了一个糟糕的调整: setTimeout(function () { process.exit(); }, 30000); 这段代码在脚本的末尾执行。 我想知道是否有一个更优雅的解决scheme旁边,我正在使用。 run.js示例: const http = require('http'); const request = require('request'); const fb = require('firebase'); request(process.env.SourceUrl, function (error, response, body) { 'use strict'; if (!error && response.statusCode == […]

Azure存储表查询 – 结果与响应

我使用node.js作为我的服务器,并在我的存储表所在的Azure上拥有一个帐户。 我正在使用以下方法检索特定分区的所有logging: var query= new azure.TableQuery().where('PartitionKey eq ?',username); tableSvc.queryEntities(localTableName,query, null, function(error, result, response) { } 当这个调用返回时,我想访问表的其余部分的值。 但是,当我使用result.entries这样做,它看起来有点怪异。 或者我想我可以通过response.body.value.userID访问结果。 下面是“result.entries”和“response”对象的结构: result.entries : [ { PartitionKey: { '$': 'Edm.String', _: '048tfbne' }, RowKey: { '$': 'Edm.String', _: '145610564488450166' }, Timestamp: { '$': 'Edm.DateTime', _: Mon Feb 22 2016 01:47:26 GMT+0000 (UTC) }, username: { _: '048tfbne' }, […]

节点js POST mysite / uploads 404(未find)上传到天青,但本地工作

我正在为一个小型网页上传一个上传项目,我把它们全部在本地工作,我可以上传文件,我可以操纵它们,我可以得到必要的数据作为回应。 昨天晚上我把所有东西都推到了azure,现在当我尝试上传我得到的东西的时候 POST mysite/uploads 404 (Not Found) 我的file.html <form id="uploadForm" enctype="multipart/form-data" action="/uploads" method="post"> <input type="file" name="userPhoto" class="btn btn-wire" /> <input type="submit" value="Upload" name="submit" class="btn btn-primary" /> </form> HTML的file.js jQuery(document).ready(function () { $('#uploadForm').submit(function () { $("#status").empty().text("File is uploading…"); $(this).ajaxSubmit({ error: function (xhr) { $("#status").text('Error: ' + xhr.status); //alert(JSON.stringify(xhr)); }, success: function (response) { // var test […]

TypeError:client.getReceiver不是azure-iot-device-http示例中的函数

我正在使用azure-iot-device-http ,并运行入门代码: var clientFromConnectionString = require('azure-iot-device-http').clientFromConnectionString; var Message = require('azure-iot-device').Message; var connectionString = 'myHostname,myDevice,myKey; var client = clientFromConnectionString(connectionString); var msg = new Message('some data from my device'); client.sendEvent(msg, function (err) { if (err) console.log(err.toString()); }); client.getReceiver(function (err, rcv) { rcv.on('message', function (msg) { console.log(msg); rcv.complete(msg, function () { console.log('completed'); }); }); rcv.on('errorReceived', function (err) { […]

接收从Node.JS到Azure事件中心的HTTPS请求的ECONNRESET错误

我目前有一个Node.js Web API,它将HTTPS请求发送到Azure事件中心。 如果我发送单个请求或小的突发(5-7),集线器收到罚款。 但是,如果我尝试发送比这更多的信息,那么我将会收到来自集线器的ECONNRESET错误,这个错误超过了ECONNRESET (第一个ECONNRESET将通过罚款)。 (7是不是一个硬数字,它从testing到testing,但似乎是在附近) 我有一个JSON对象的数组,我通过下面的代码发送到集线器: for (var i in stack) { var obj = stack[i]; sendPayloadToEventHub(JSON.stringify(obj)); } 将JSON发送到事件中心的代码: sendPayloadToEventHub = function (payload) { var options = { hostname: config['namespace'] + '.servicebus.windows.net', port: 443, path: '/' + config['hubname'] + '/publishers/' + config['devicename'] + '/messages', method: 'POST', headers: { 'Authorization': returnSASToken(), 'Content-Length': payload.length, 'Content-Type': […]

Nodejs使用.createBlockBlobFromLocalFile()将base64映像上传到azure blob存储

我想通过Base64表单上传从networking应用和移动应用发送的用户的个人资料图片。 在POST请求上,他们需要在正文上发送一个JSON 。 { "name":"profile-pic-123.jpg", "file":"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAkGBxQTEhIUEhIUFBUV…K9rk8hCAEkjFMUYiEAI+nHIpsQh0AkisDYRTOiCAbWVtgCtI6IlkHh7LDTQXLH0EIQBj//2Q==" // the base64 image } 现在在服务器端使用Node和Express ,我使用了这个名为azure-storage npm模块,它提供了一个使用web服务将file upload到azure blob存储的好方法。 但是有一些我无法理解的。 这里是我的控制器的一部分代码。 我成功创build了所有必要的连接和键,以及创build一个blobService : controllers.upload = function(req, res, next){ // … // generated some sastoken up here // etc. // … var uploadOptions = { container: 'mycontainer', blob: req.body.name, // im not sure about this path: req.body.file // im […]

使Azure DocumentDB不返回服务字段

我在节点应用程序中使用类似于SQL的Sytax for Azure DocumentDB。 这里是方法代码 client.queryDocuments(collection._self, "SELECT * FROM root").toArray(function(err, results) { if (err) { callback(err); } else { callback(null, results); } }); 和回应 [ { "id": "test1", "name": "Kate", "email": "test@mail.com", "brands": [ "AAAA", "BBB", "CCCi" ], "_rid": "WedNAN3lZgABAAAAAAAAAA==", "_self": "dbs/WedNAA==/colls/WedNAN3lZgA=/docs/WedNAN3lZgABAAAAAAAAAA==/", "_etag": "\"00001b00-0000-0000-0000-56fff6c60000\"", "_ts": 1459615430, "_attachments": "attachments/" } ] 有什么办法让DocumentDb不会重复执行服务字段(_rid,_self,_etag,_ts,_attachments),但不能在select子句中写入所有非服务字段?