Nuxt Content 在 ssr 模式時的小 bug
2021年1月15日 · Waiting7777 · 1 分鐘閱讀
當前版本 @nuxt/content 1.10
在此版本的 @nuxt/content``,用 ssr 模式下會出現錯誤 UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'length' of undefined`,只是 warning 而已,並不影響正常使用,或許也是因為這原因所以官方目前還未修正。
發生原因
發生的原因要看 @nuxt/content 的原始碼,在他的 lib/ws.js 中
const WebSocket = require('ws')
constructor (options) {
super()
this.wss = new WebSocket.Server({ noServer: true })
this.hook('upgrade', (request, socket, head) => {
if (request.url === `/${options.apiPrefix}/ws`) {
this.handleUpgrade(request, socket, head)
}
})
}
serve (req) {
this.handleUpgrade(req, req.socket, undefined)
}
handleUpgrade (request, socket, head) {
return this.wss.handleUpgrade(request, socket, head, (client) => {
this.wss.emit('connection', client, request)
})
}
可以看出它用了 ws 的 npm module 並且呼叫了 handleUpgrade,而在這 handle 中如果沒資料期望會是空陣列 [] 而不是 undefined 所以就報錯了。
修復辦法
-
把 @nuxt/content 的 lib/ws.js 修復,把 serve (req) { this.handleUpgrade(req, req.socket, undefined) } 改成 serve (req) { this.handleUpgrade(req, req.socket, []) },這樣即可,缺點為因為是直接修改 node_modeules 所以當你有任何安裝/更新 modules 時,這段都會被還原,需要再次修改。
-
在自己的 server/index.js 中,增加一段 process.on('unhandledRejection', (error) => {}),這屬於眼不見為淨的方法XD
Waiting7777
WoW Arena 冠軍轉前端,用電競 meta 思維拆解技術趨勢。
相關文章
AIAI 時代悲劇:爬蟲吃光內容 最後誰來餵 AI?
從遊戲設計角度看這個問題:一個讓所有玩家都想當 free rider 的機制設計,最後一定崩潰。分析 AI 公司、內容創作者、讀者三方的利益衝突,以及可能的出路長什麼樣。
2026年8月14日 · HW SHU · 7 分鐘閱讀
繼續閱讀 →
創業創投+4YC 裡越來越多二次創業者 — AI 時代為什麼老手反而更吃香
為什麼 AI 時代反而讓「老手」更吃香?從 YC 的數據看 repeat founder 的優勢在哪,以及這對第一次創業的人有什麼啟示。
2026年8月12日 · Waiting7777 · 7 分鐘閱讀
繼續閱讀 →
AI Agents開發工具+5OpenChamber:專為 AI Agent 設計的開發環境,跟 IDE 的差別在哪?
拆解 OpenChamber 的設計邏輯:為什麼 agent 需要專屬的開發環境、跟直接在 terminal 跑 Claude Code 有什麼本質差異,以及這個方向的商業潛力在哪。
2026年8月11日 · Waiting7777 · 8 分鐘閱讀
繼續閱讀 →這篇文章對你有幫助嗎?
每週一篇 — 技術趨勢背後的商業邏輯
AI 產業在變什麼、工程師該注意什麼——拆清楚寄到你的信箱。