Node.js與OpenSSL 3.0不兼容問(wèn)題的解決過(guò)程
在某些情況下,使用 Node.js 17 或更高版本時(shí),可能會(huì)遇到與 crypto 庫(kù)有關(guān)的錯(cuò)誤。
這主要是因?yàn)?Node.js 17 引入了對(duì) OpenSSL 3.0 的支持,該版本對(duì)于一些 API 進(jìn)行了重大更改,這可能導(dǎo)致與某些 Node.js 庫(kù)或依賴(lài)項(xiàng)的不兼容。
錯(cuò)誤描述
以下是錯(cuò)誤的示例:
Error: error:0308010C:digital envelope routines::unsupported
...
code: 'ERR_OSSL_EVP_UNSUPPORTED'
解決方案
為了解決與 OpenSSL 3.0 的不兼容問(wèn)題,Node.js 提供了 --openssl-legacy-provider 選項(xiàng),但這并不總是有效。
一種有效的解決方法是退回到 Node.js 16,這是一個(gè)長(zhǎng)期支持(LTS)版本,并且不包括 OpenSSL 3.0 的支持。
使用NVM切換Node.js版本
NVM (Node Version Manager) 是一個(gè)非常方便的工具,允許在同一臺(tái)機(jī)器上安裝、管理和切換多個(gè) Node.js 版本。
安裝NVM
- 訪(fǎng)問(wèn)NVM GitHub 倉(cāng)庫(kù) 獲取安裝指南。
- 對(duì)于大多數(shù)用戶(hù),只需在終端運(yùn)行以下命令即可:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
使用NVM切換Node.js版本
- 安裝 Node.js 16
nvm install 16
- 切換至 Node.js 16 版本
nvm use 16
這樣,就切換到了 Node.js 16,并且應(yīng)該不會(huì)再遇到與 OpenSSL 3.0 不兼容的問(wèn)題。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
最流行的Node.js精簡(jiǎn)型和全棧型開(kāi)發(fā)框架介紹
這篇文章主要介紹了最流行的Node.js精簡(jiǎn)型和全棧型開(kāi)發(fā)框架介紹,本文講解了Express.js、KOA、Total.js、Sails.js、Meteor、Mean.IO等框架,需要的朋友可以參考下2015-02-02
NodeJs環(huán)境安裝與配置的實(shí)現(xiàn)步驟
本文主要介紹了NodeJs環(huán)境安裝與配置,包括配置環(huán)境和配置國(guó)內(nèi)鏡像,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-01-01
Node.js定時(shí)任務(wù)之node-schedule使用詳解
這篇文章主要介紹了Node.js定時(shí)任務(wù)之node-schedule使用詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08
nodejs使用redis作為緩存介質(zhì)實(shí)現(xiàn)的封裝緩存類(lèi)示例
這篇文章主要介紹了nodejs使用redis作為緩存介質(zhì)實(shí)現(xiàn)的封裝緩存類(lèi),涉及nodejs操作redis進(jìn)行緩存設(shè)置相關(guān)操作技巧,需要的朋友可以參考下2018-02-02
Node.js全棧知識(shí)點(diǎn)超詳細(xì)整理(含代碼示例+前端結(jié)合實(shí)戰(zhàn))
在實(shí)時(shí)應(yīng)用程序領(lǐng)域,Node.js非常適合構(gòu)建聊天應(yīng)用、實(shí)時(shí)協(xié)作工具、在線(xiàn)游戲等,通過(guò)Socket.IO、WebSocket等技術(shù),能夠?qū)崿F(xiàn)實(shí)時(shí)數(shù)據(jù)傳輸和雙向通信,這篇文章主要介紹了Node.js全棧知識(shí)點(diǎn)(含代碼示例+前端結(jié)合實(shí)戰(zhàn))的相關(guān)資料,需要的朋友可以參考下2026-06-06
node.js實(shí)現(xiàn)簡(jiǎn)單登錄注冊(cè)功能
這篇文章主要為大家詳細(xì)介紹了node.js實(shí)現(xiàn)簡(jiǎn)單登錄注冊(cè)功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-04-04
npm?i報(bào)錯(cuò)以及解決方案實(shí)戰(zhàn)案例
npm在前端開(kāi)發(fā)流程中提供了非常完善的自動(dòng)化工具鏈,但是同樣由于其復(fù)雜性導(dǎo)致有很多奇奇怪怪的問(wèn)題,下面這篇文章主要給大家介紹了關(guān)于npm?i報(bào)錯(cuò)以及解決方案的相關(guān)資料,需要的朋友可以參考下2022-07-07
nodejs 使用http進(jìn)行post或get請(qǐng)求的實(shí)例(攜帶cookie)
今天小編就為大家分享一篇nodejs 使用http進(jìn)行post或get請(qǐng)求的實(shí)例(攜帶cookie),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-01-01

