我正在嘗試在我現有的 Express 服務器上實作一個 SvelteKit 前端,它處理身份驗證等。
我正在使用節點配接器并嘗試將其作為中間件連接到我的 Express 應用程式,
app.use(assetsMiddleware, prerenderedMiddleware, kitMiddleware);
并從
const { assetsMiddleware, prerenderedMiddleware, kitMiddleware } = "./client/build/middlewares.js";
但我得到了錯誤
TypeError: Router.use() requires a middleware function but got a undefined
這讓我相信它沒有正確匯入模塊并且三個匯入都未定義,盡管我可以在 middlewares.js 檔案中看到匯出是正確的。我嘗試過 ES6 模塊,但沒有成功,而且我更喜歡用 Express 堅持使用 commonJS。我找不到任何關于以這種方式使用節點配接器的存盤庫或教程,而且檔案很少。
基本上,此錯誤的修復方法是什么?我也很感激任何可能有助于讓 SK 作為 Express 作業的中間件的資源!
uj5u.com熱心網友回復:
看來你忘記了require() "./client/build/middlewares.js";。物件解構一個字串(即const { x, y } = "Some String")使得變數undefined。因此,app.use()您實際上傳遞了三個等于 undefined (即assetsMiddleware === undefined)的變數。這就是為什么它給出了一個TypeError.
所以你需要做的改變是這樣的:
const { assetsMiddleware, prerenderedMiddleware, kitMiddleware } = require("./client/build/middlewares.js");
我希望這可以為您解決!
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/388147.html
