node.js - 我们如何使用 vhost 动态创建子域。我必须在 username.domain.com 和仅在用户注册后创建的子域中共享一些数据
问题描述
我正在尝试使用 express vhost,但我不知道如何动态创建,这意味着如果使用该用户名注册的用户创建一个子域,如 username.domain.com
我的 app.js
const express = require("express");
const app = express();
const morgan = require("morgan");
const mongoose = require("mongoose");
const bodyParser = require("body-parser");
const cors = require("cors");
var cookieParser = require("cookie-parser");
require("dotenv").config({ path: __dirname + "/.env" });
const vhost = require("vhost");
const subdomain = express();
const domain = "localhost";
app.use(vhost(`username.${domain}`, subdomain));
app.use(cookieParser());
subdomain.use(cookieParser());
app.use(morgan("dev"));
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
subdomain.use(morgan("dev"));
subdomain.use(bodyParser.urlencoded({ extended: false }));
subdomain.use(bodyParser.json());
const userRoutes = require("./api/routes/user");
subdomain.use(userRoutes);
app.use("*", (req, res, next) => {
const error = new Error("Not found");
error.status = 404;
next(error);
});
app.use("*", (error, req, res, next) => {
res.status(error.status || 500);
res.json({
error: {
message: error.message,
},
});
});
module.exports = app;
在这里,我手动创建子域,例如http://username.localhost:3000/user
我想在用户注册后使用 API 动态创建它
解决方案
推荐阅读
- python-3.x - 如何利用 pyspark 获取 impala db/tables 元数据?
- docker - docker-compose 给出错误:backend exited with code 2 backend | /bin/sh:语法错误:未终止的引号字符串
- excel - 如果我将光标放在特定单元格中,自动运行宏?
- javascript - 如何更改名称提示中的默认键盘语言?
- r - 减少程序计算时间的建议
- regex - 尝试通过正则表达式在类别中查找前 10 名产品
- c++ - 使用boost串口读取时无法加入线程
- docker - Dockerfile,服务 cron 失败
- sql - 层次比较
- cypress - 使用赛普拉斯如何在一个域上运行预测试代码,然后再在另一个域上执行所有测试