- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要设置一个 Polka(或 Express)服务器,以便它可以从单个 server.js 入口点为多个应用程序(每个主机名一个)提供服务。可以使用 vhost
来完成。中间件 ( https://github.com/expressjs/vhost )。每个app都作为一个中间件导出,在server.js中的中间件链中添加了每个请求对应的那个。
但是,这些应用程序中的一些(不是全部)将是 Sapper 应用程序,因此设置必须与 Sapper 兼容。据我所知,Sapper 构建会生成一个 server.js 文件,该文件用作应用程序的入口点,但不会导出该应用程序。 是否有导出 Sapper 应用程序的构建选项(而不是在其上执行 listen
)?或者其他一些方法来做到这一点?
我尝试手动编辑构建并且它似乎可以工作,尽管文件路径存在一些问题,因为 Sapper 应用程序的根目录不是主应用程序的根目录。
我查了这个问题,但没有找到任何引用,所以我想知道我是否走错了路,是否有更明显的解决方案。 (注意:我使用的 Node.js 托管不允许将主机名映射到应用程序文件夹,这当然会使事情变得更简单。)
最佳答案
解决方案 #1:将 Sapper 应用程序导出为中间件
您可以自己导出 Sapper 应用程序。在您的 Sapper 应用程序的 server.ts/server.js 中,您可以导出中间件,而不是启动服务器。像这样的东西:
import * as sapper from "@sapper/server";
export const handler = sapper.middleware();
然后在您的 express 应用程序中,只需将域映射到导出的中间件:
const express = require('express');
const vhost = require('vhost');
const path = require('path');
const { handler } = require('./__sapper__/build/server/server');
const app = express();
app.use(vhost('*.example.com', (req, res, next) => {
if (req.vhost[0] === 'sapper') {
return handler(req, res, next);
}
return res.statusCode(400);
}))
app.listen(3000, () => console.log('Server started'));
解决方案#2:使用反向代理
关于node.js - 与 Sapper 兼容的设置,可从单个 Express/Polka 入口点提供多个应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65214871/
我是新手。所以请帮助我。我想问一些关于工兵的问题。我必须在 Polka 中创建单独的后端 API(表达任何框架)或者我可以使用相同的 Polka(express) 作为后端?我必须通过同一个 polk
我正在尝试使用 polka js 实现 protected 路由。我尝试使用中间件来实现它,但即使对于未 protected 路由,我也一直未获得授权。 const polka = require('
我正在尝试将我的 sapper/svelte 应用程序部署到 heroku,但收到“错误:找不到模块‘polka’”这个错误。有趣的是,它非常好并且可以正常工作。我的 package.json 是正确
我正在尝试将我的 sapper/svelte 应用程序部署到 heroku,但收到“错误:找不到模块‘polka’”这个错误。有趣的是,它非常好并且可以正常工作。我的 package.json 是正确
我正在尝试从另一个文件导入路由逻辑。在 express js 中,这是可以通过 express.Route() 实现的,当我尝试 polka.Route() 时会弹出一个错误,提示 Route 在 p
我需要设置一个 Polka(或 Express)服务器,以便它可以从单个 server.js 入口点为多个应用程序(每个主机名一个)提供服务。可以使用 vhost 来完成。中间件 ( https://
我正在尝试用 Sapper(sveltejs) 重写我的网站 (Pug+Express)。我是 sveltejs 的初学者,如果我的问题可能真的很幼稚,请原谅。 我有一个 template.json
我是一名优秀的程序员,十分优秀!