【Azure Developer】在使用Azure Bot Service JavaScript的实例代码遇见Cannot find module 'node:crypto'

本文涉及的产品
可观测可视化 Grafana 版,10个用户账号 1个月
可观测监控 Prometheus 版,每月50GB免费额度
注册配置 MSE Nacos/ZooKeeper,118元/月
简介: Error: Cannot find module 'node:crypto'

问题描述

从Github中下载了JavaScript的Bot Service EchoBot实例代码,本地执行,总是报错 Cannot find module 'node:crypto'

错误信息

Error: Cannot find module 'node:crypto'

Require stack:

at Function.Module._resolveFilename (internal/modules/cjs/loader.js:902:15)

at Function.Module._load (internal/modules/cjs/loader.js:746:27)

at Module.require (internal/modules/cjs/loader.js:974:19)

at require (internal/modules/cjs/helpers.js:92:18)

at Object.<anonymous> (C:\js_echo_bot\node_modules\botframework-schema\node_modules\uuid\dist\rng.js:7:42)

at Module._compile (internal/modules/cjs/loader.js:1085:14)

at Object.Module._extensions..js (internal/modules/cjs/loader.js:1114:10)

at Module.load (internal/modules/cjs/loader.js:950:32)

at Function.Module._load (internal/modules/cjs/loader.js:790:14)

at Module.require (internal/modules/cjs/loader.js:974:19) {

code: 'MODULE_NOT_FOUND',

 

 

问题解答

咨询了M365 Copilot后,找到了答案。就是因为本地的NodeJs版本太低的原因。

 

1. 检查 Node.js 版本:确保使用的 Node.js 版本支持 node:crypto 模块。

如果使用的是较旧版本的 Node.js,可能会因为不识别 node:* 语法而出现此错误。更新到 Node.js 版本 16 或更高版本应该可以解决此问题。

 

对于 Node.js 版本 16 及更高版本,应该使用:

const crypto = require('node:crypto');

旧版本,则需要使用:

const crypto = require('crypto');

 

 

参考资料

Error

Error: Cannot find module 'node:process'

Problem

This is caused by Node 14, which doesn't understand new syntax "node:*".

Node 14 used to have syntax:

require moduleName

However, in version 16 this was changed to:

require node:moduleName

Solution

Update to Node Version 16.

 



当在复杂的环境中面临问题,格物之道需:浊而静之徐清,安以动之徐生。 云中,恰是如此!


相关文章
|
22天前
|
JavaScript C++ 容器
【Azure Bot Service】部署NodeJS ChatBot代码到App Service中无法自动启动
2024-11-12T12:22:40.366223350Z Error: Cannot find module 'dotenv' 2024-11-12T12:40:12.538120729Z Error: Cannot find module 'restify' 2024-11-12T12:48:13.348529900Z Error: Cannot find module 'lodash'
38 11
|
2月前
|
JavaScript 前端开发 开发工具
【Azure Developer】使用JavaScript通过SDK进行monitor-query的client认证报错问题
AADSTS90002: Tenant 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' not found. Check to make sure you have the correct tenant ID and are signing into the correct cloud. Check with your subscription administrator, this may happen if there are no active subscriptions for the tenant.
|
2月前
|
前端开发 JavaScript
基础 JavaScript 实例
基础 JavaScript 实例
21 1
|
4月前
|
JavaScript 前端开发 索引
JS中常用的数组迭代方法(filter,forEach,map,every,some,find,findIndex)
这段代码和说明介绍了JavaScript中数组的一些常用方法。函数接收三个参数:`item`(数组项的值)、`index`(项的位置,可选)和`array`(数组本身,可选)。示例展示了如何使用`filter()`过滤非空项、`forEach()`遍历数组、`map()`处理并返回新数组、`every()`检查所有元素是否满足条件、`some()`检查是否存在满足条件的元素、`find()`获取首个符合条件的元素值以及`findIndex()`获取其索引位置。这些方法都不会修改原数组。
JS中常用的数组迭代方法(filter,forEach,map,every,some,find,findIndex)
|
4月前
|
JavaScript 前端开发
【Azure Developer】在App Service上放置一个JS页面并引用msal.min.js成功获取AAD用户名示例
【Azure Developer】在App Service上放置一个JS页面并引用msal.min.js成功获取AAD用户名示例
|
4月前
|
JavaScript Linux
【Azure App Service for Linux】NodeJS镜像应用启动失败,遇见 RangeError: Incorrect locale information provided
【Azure App Service for Linux】NodeJS镜像应用启动失败,遇见 RangeError: Incorrect locale information provided
|
前端开发 JavaScript
8 种技巧让你编写更简洁的 JavaScript 代码
8 种技巧让你编写更简洁的 JavaScript 代码
252 0
8 种技巧让你编写更简洁的 JavaScript 代码
|
Web App开发 JavaScript 前端开发
|
Web App开发 JavaScript 前端开发
【译】如何编写避免垃圾开销的实时 JavaScript 代码
本文讲的是【译】如何编写避免垃圾开销的实时 JavaScript 代码,哇,这篇文章已经写了有很长一段时间了,十分感谢那些精彩的回复!其中有一些对于一些技术的指正,如使用 'delete' 。我知道了使用它可能会导致其他的降速问题,因此,我们在引擎中极少使用它。
1155 0