我正在尝试使用 Azure 存储来存储 Node.js 应用程序中的资产。我遵循了官方文档。但是连接字符串规范不起作用。所以我收到错误。
抛出新的 SyntaxError(SR.INVALID_CONNECTION_STRING); ^
语法错误:连接字符串必须采用“key1=value1;key2=value2”的形式。
在 Object.exports.parseAndValidateKeys (/home/sakthips/Downloads/Projects/node/storage-blobs-node-quickstart/node_modules/azure-storage/lib/common/services/servicesettings.js:83:15)
在 .env 文件中,我这样指定
AZURE_STORAGE_CONNECTION_STRING='DefaultEndpointsProtocol=****..'
但它不起作用。有人能解释一下为什么它不起作用吗
答案1
在初始化 Azure Store 之前必须读取 .env。使用
require('dotenv').load();
不要打电话
const storage = require('azure-storage')
直到实际使用之前。
答案2
加载dotenv
顺序似乎并不重要,我需要加载dotenv
后azure-storage
仍然可以验证队列是否已创建。
我的代码如下:
var azure = require('azure-storage');
require("dotenv").config();
var queueSvc = azure.createQueueService();
queueSvc.createQueueIfNotExists('myqueue', function(error, results, response){
if(!error){
// Queue created or exists
console.log(error);
}
console.log(results);
});
我的连接字符串供参考:
AZURE_STORAGE_CONNECTION_STRING=AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;DefaultEndpointsProtocol=http;BlobEndpoint=http://127.0.0.1:10000/devstoreaccount1;QueueEndpoint=http://127.0.0.1:10001/devstoreaccount1;TableEndpoint=http://127.0.0.1:10002/devstoreaccount1;