首页 > 解决方案 > ReferenceError:在 Azure javascript 函数中未定义 URL

问题描述

我正在使用 Azure Function App 来处理简单的 API 调用。我使用 JavaScript 作为语言。我在本地开发并测试func host start并确认了所有需要的工作。部分代码正在解析 URL。我的功能代码中有以下内容:

const url = require('url');
let myUrl = new URL(someInputParameter);

如前所述,这在本地测试时可以正常工作,但是在 azure 中部署时,我收到以下错误消息:

018-12-11T10:40:56.236 [Error] Executed 'Functions.myFunction' (Failed, Id=d7d51ed1-d37e-44ec-91d0-070de2005c1c)
Result: Failure
Exception: ReferenceError: URL is not defined
Stack: ReferenceError: URL is not defined
    at module.exports (D:\home\site\wwwroot\myFunction\index.js:8:15)
    at WorkerChannel.invocationRequest (D:\Program Files (x86)\SiteExtensions\Functions\2.0.12210\32bit\workers\node\worker-bundle.js:28862:26)
    at ClientDuplexStream.WorkerChannel.eventStream.on (D:\Program Files (x86)\SiteExtensions\Functions\2.0.12210\32bit\workers\node\worker-bundle.js:28752:30)
    at emitOne (events.js:116:13)
    at ClientDuplexStream.emit (events.js:211:7)
    at addChunk (_stream_readable.js:263:12)
    at readableAddChunk (_stream_readable.js:250:11)
    at ClientDuplexStream.Readable.push (_stream_readable.js:208:10)
    at Object.onReceiveMessage (D:\Program Files (x86)\SiteExtensions\Functions\2.0.12210\32bit\workers\node\worker-bundle.js:42351:19)
    at InterceptingListener.module.exports.InterceptingListener.recvMessageWithContext (D:\Program Files (x86)\SiteExtensions\Functions\2.0.12210\32bit\workers\node\worker-bundle.js:41678:19)

请注意我这样做require('url')。我该如何解决这个问题?

标签: javascriptnode.jsurlazure-functions

解决方案


我最终想通了。代码在节点 8 中运行,因此require行需要如下所示:

const { URL } = require('url');

现在一切都按预期工作。


推荐阅读