node.js - 如何使用猫鼬创建多站点 url 以将特定信息存储到特定站点
问题描述
在我的应用程序中,有一个名为“创建站点”的选项将创建一个新的站点 URL。所以问题是我有这么多的集合,我需要向相关站点显示相关数据。
作为管理员,我可以创建任意数量的站点,其中包含许多选项,例如“创建用户”、“我的帐户”、“创建项目”、“设置”等(在导航栏中)。因此,在选择这些选项时,它应该获取与该选项和该站点相关的数据......
为了更好地理解,例如:在我的应用程序中,假设如果我创建一个新站点 URL,例如"www.mywebsite/new-website"
- 这个 URL 是一个新网站,默认情况下它不包含任何数据,所有选项都像“创建用户,创建项目等”。 “只有当我添加一些数据时才会有数据。
我将创建另一个站点 URL,例如"www.mywebsite/new-website1"
- 最初不会出现任何数据,添加后将包含相关信息。
在 MongoDB 中,如何使用单个数据库来实现这一点?所以我正在使用 MEAN 堆栈应用程序我需要一个关于如何实现这种情况的解决方案,有人可以帮助我清楚地了解 MongoDB 在这种情况下的使用情况,我将不胜感激。
谢谢!
解决方案
通过使用快速路由,一种简单的方法是通过将路由器作为中间件附加到其他路由器上来嵌套路由器。
通过这种方式,您可以拥有一个网站集合,并在所有其他集合中使用 websiteId 作为参考。
所以路线变成:
GET /
->hello websites
GET /new-website
->Hello from Website : new-website
GET /new-website/users
->List users from website : new-website
GET /new-website/users/101
->Hello User : 101 from website : new-website
var express = require("express");
var app = express();
var siteRouter = express.Router();
// you need to set mergeParams: true on the router,
// if you want to access params from the parent router
var userRouter = express.Router({ mergeParams: true });
// you can nest routers by attaching them as middleware:
siteRouter.use("/:sitename/users", userRouter);
siteRouter.route("/").get(function(req, res) {
res.status(200).send("hello websites");
});
siteRouter.route("/:sitename").get(function(req, res) {
res.status(200).send("Hello from Website : " + req.params.sitename);
});
userRouter.route("/").get(function(req, res) {
res.status(200).send("List users from website " + req.params.sitename);
});
userRouter.route("/:userId").get(function(req, res) {
res
.status(200)
.send(
"Hello User : " + req.params.userId + " from website :" + req.params.sitename
);
});
app.use("/", siteRouter);
app.listen(3000);
注意:- 我只添加了 GET 请求,使用 POST 请求创建网站,响应式路由中的用户,并且在授予对路由的访问权之前必须检查足够的授权。
推荐阅读
- python - 给定 3d 张量时,argmax 如何工作 - tensorflow
- java - 有没有办法阻止在另一个 Android 应用程序中显示密码功能?
- javascript - 如果使用 jquery 在密码框中键入了某些内容,则显示和隐藏确认密码框
- r - 减小上标字体大小ggplot2 R
- django - 在网页上显示 Django 外键
- shiro - 我们可以使用 Apache Shiro 与 Angular 8
- dynamic-programming - 我无法理解 o(sum) 空间复杂度中硬币兑换问题的逻辑
- android - 如何在 kotlin 1.4 中使用视图绑定
- reactjs - 从 React 中的数组/对象中获取值
- python - 为什么我的推特机器人只推一个单词或一个字母,而不是一个完整的句子?