我正在尝试使用 expressjs 及其虚拟主机功能运行 2 个或更多 nuxt 应用程序。我的目标是在一个端口中运行分配给不同域的多个 nuxt 应用程序。
这是我尝试过的。
- 我设置了 2 个 nuxt 示例应用程序
- 我使用添加到 package.json 的 vhost 模块设置 expressjs
这是 expressjs 的 server.js 的内容
var vhost = require("express"); var vhost = require("vhost"); var app = (module.exports = express()); var app_one = require("./app_one/server/index.js"); var app_two = require("./app_two/server/index.js"); app .use(vhost("appone.com", app_one.start_app_one)) .use(vhost("apptwo.com", app_two.start_app_two)) .listen(3000);
然后我在两个应用程序的服务器目录下添加了 index.js。
应用一
const express = require("express");
const consola = require("consola");
const {
Nuxt,
Builder
} = require("nuxt");
const app = express();
// Import and Set Nuxt.js options
const config = require("../nuxt.config.js");
config.dev = process.env.NODE_ENV !== "production";
async function start() {
// Init Nuxt.js
const nuxt = new Nuxt(config);
const {
host,
port
} = nuxt.options.server;
// Build only in dev mode
await nuxt.ready();
// Give nuxt middleware to express
app.use(nuxt.render);
// Listen the server
app.listen(port, host);
consola.ready({
message: `Server listening on http://${host}:${port}`,
badge: true
});
}
exports.start_app_one = function () {
start();
};
应用二
const express = require("express");
const consola = require("consola");
const {
Nuxt,
Builder
} = require("nuxt");
const app = express();
// Import and Set Nuxt.js options
const config = require("../nuxt.config.js");
config.dev = process.env.NODE_ENV !== "production";
async function start() {
// Init Nuxt.js
const nuxt = new Nuxt(config);
const {
host,
port
} = nuxt.options.server;
await nuxt.ready();
// Give nuxt middleware to express
app.use(nuxt.render);
// Listen the server
app.listen(port, host);
consola.ready({
message: `Server listening on http://${host}:${port}`,
badge: true
});
}
exports.start_app_two = function () {
start();
};
然后我跑node server.js
。当我尝试访问appone.com:3000
它时,它只会显示 nuxt 加载网页并停在那里。控制台内没有错误或没有消息。我被困在这一点上,有人可以帮助我吗?