从Node / Express获取Azure Blob容器名称传递回Angular

时间:2015-09-22 22:52:42

标签: angularjs node.js azure express

我是Node / Express的新手,我使用它作为后端与Azure Blob存储集成。具体来说,我可以使用以下命令在Angular的单击客户端创建Azure blob容器:

角度控制器(绑定到ng-click事件):

  $scope.createContainer = function () {
            // Create Blob Container
            $http.get('/createcontainer').success(function (data) {
                console.log(data);
            });
        };

创建Blob容器的Node / Express后端:

app.get('/createcontainer', function (res, req) {

    function generateUnique() {
        function guid() {
            function s4() {
                return Math.floor((1 + Math.random()) * 0x10000)
      .toString(16)
      .substring(1);
            }
            return s4() + s4() + '-' + s4() + '-' + s4() + '-' +
    s4() + '-' + s4() + s4() + s4();
        }

        var containerNamePart1 = guid();
        var now = new Date();
        var containerNamePart2 = dateFormat(now, "yyyymmddhhMMss");

        var containerName = containerNamePart1 + "-" + containerNamePart2;

        blobSvc.createContainerIfNotExists(containerName, function (error, result, response) {
            if (!error) {
                console.log(result);
                if (result === false) {
                    generateUnique();
                }

    // Container exists and allows
    // anonymous read access to blob
    // content and metadata within this container
            }
        });
    }

    generateUnique();
});

我需要做的是将在后端(Node / Express)中创建的blob容器的名称传递给我的Angular前端(控制器),以便它可以用作其他操作的变量。如何将Node / Express中的变量或数据传递给前端以供使用/使用?

1 个答案:

答案 0 :(得分:1)

我发现了这个问题。在我的第一行,我有req和res向后((res,req)应该是(req,res)。通过这个解决,我能够将以下内容添加到我的blob容器创建的成功方面:

res.send(containerName);

这可以在我传入containerName的console.log之后看到。

blobSvc.createContainerIfNotExists(containerName, function (error, result, response) {
            if (!error) {
                console.log(result);
                res.send(containerName);
                if (result === false) {
                    generateUnique();
                }