我正在学习node.js和Azure服务总线教程。我可以将以下代码作为一个节点应用程序运行,但是,我很难从我的HTML页面调用一个节点函数:
注意,所有的文件都正确地加载了节点http-server模块,但是,当我调用main函数时,我得到了以下错误:
ReferenceError: ServiceBusClient is not definedNode.js函数:
const { ServiceBusClient } = require("@azure/service-bus");
// Define connection string and related Service Bus entity names here
const connectionString ="";
const queueName = "";
async function main() {
const sbClient = ServiceBusClient.createFromConnectionString(
connectionString
);
const queueClient = sbClient.createQueueClient(queueName);
const sender = queueClient.createSender();
try {
for (let i = 0; i < 1; i++) {
const message = {
body: "{}",
label: "Contact",
userProperties: {
myCustomPropertyName: "my custom property value",
},
};
console.log(`Sending message: ${message.body}`);
await sender.send(message);
}
await queueClient.close();
} finally {
await sbClient.close();
}
}
main().catch((err) => {
console.log("Error occurred: ", err);
});任何帮助都非常感谢。
发布于 2020-10-02 10:10:12
总结来自Pogrindis的评论,供其他社区参考:
Node是后端业务逻辑,HTML是前端,因此Node中的方法没有直接通信。我们可以实现一些像express这样的We服务器,以允许对节点服务器进行http调用,然后从那里我们可以调用业务逻辑。对于服务总线的错误,需要实现ServiceBusClientOptions接口。
发布于 2020-12-14 06:31:21
要在网站上使用Azure SDK库,您需要转换代码以在浏览器中工作。您可以使用诸如rollup、webpack、parcel等捆绑器来完成此操作。要在浏览器中使用@azure/service-bus库,请参考此bundling docs。
此外,示例中的代码看起来使用的是版本1。
最近发布了7.0.0版。请参阅下面的链接。
https://stackoverflow.com/questions/64062576
复制相似问题