使用适配器节点 (SvelteKit) 为 Express 服务器创建中间件

Use adapter-node (SvelteKit) to create middleware for Express server

我正在尝试在我现有的 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 中工作的资源!

您似乎忘记了 require() "./client/build/middlewares.js";。对象解构一个字符串(即const { x, y } = "Some String")使得变量undefined。因此,对于 app.use(),您实际上传递了三个等于未定义的变量(即 assetsMiddleware === undefined)。这就是为什么它给出 TypeError.

所以你需要做的改变是:

const { assetsMiddleware, prerenderedMiddleware, kitMiddleware } = require("./client/build/middlewares.js");

希望这能帮您解决问题![​​=18=]