如何使节点cms模块化
How to make node cms modular
我想使我的节点 cms(目前只有登录、注册、文章)模块化。就像您可以添加或删除任何模块一样,只需删除或添加文件夹。但是我找不到任何正确或聪明的方法或任何方法来做到这一点。您有任何可以提供帮助的经验、指南或示例吗?
我是 node.js 的新手。
此刻它看起来像这样。
这个问题在创建模块化 cms 的上下文中有点过于宽泛,但是在谈论节点模块时,即使您只是添加或删除一个文件夹,您仍然必须 require
在您的代码中添加它们.
我会说您可以拥有两种类型的插件:
- 支持的插件 - 您创建并让用户选择是否包含它们的插件
- 匿名插件 - 每个人都可以创建的插件,需要通过某种接口包含在您的应用程序中。
第二种插件比较复杂,这里只说第一种。将它们包含在代码中的一种简单方法是使用 JSON 列出每个插件的属性,然后在代码中 require
每个插件。如果插件不存在,使用 try/catch
将防止您的应用程序崩溃:
var allowedPlugins = [
{name: "login", path: "login/index.js", loaded: false, module: null},
{name: "reg", path: "reg/reg.js", loaded: false, module: null},
{name: "articles", path: "articles/all.js", loaded: false, module: null}
];
allowedPlugins.forEach((plug) => {
try {
var module = require(plug.path);
plug.loaded = true;
plug.module = module;
} catch(err) {}
});
稍后在您的代码中您可以执行以下操作:
if (allowedPlugins.login.loaded) {
var login = allowedPlugins.login.module;
login.doLogic(...)
}
我想使我的节点 cms(目前只有登录、注册、文章)模块化。就像您可以添加或删除任何模块一样,只需删除或添加文件夹。但是我找不到任何正确或聪明的方法或任何方法来做到这一点。您有任何可以提供帮助的经验、指南或示例吗?
我是 node.js 的新手。
此刻它看起来像这样。
这个问题在创建模块化 cms 的上下文中有点过于宽泛,但是在谈论节点模块时,即使您只是添加或删除一个文件夹,您仍然必须 require
在您的代码中添加它们.
我会说您可以拥有两种类型的插件:
- 支持的插件 - 您创建并让用户选择是否包含它们的插件
- 匿名插件 - 每个人都可以创建的插件,需要通过某种接口包含在您的应用程序中。
第二种插件比较复杂,这里只说第一种。将它们包含在代码中的一种简单方法是使用 JSON 列出每个插件的属性,然后在代码中 require
每个插件。如果插件不存在,使用 try/catch
将防止您的应用程序崩溃:
var allowedPlugins = [
{name: "login", path: "login/index.js", loaded: false, module: null},
{name: "reg", path: "reg/reg.js", loaded: false, module: null},
{name: "articles", path: "articles/all.js", loaded: false, module: null}
];
allowedPlugins.forEach((plug) => {
try {
var module = require(plug.path);
plug.loaded = true;
plug.module = module;
} catch(err) {}
});
稍后在您的代码中您可以执行以下操作:
if (allowedPlugins.login.loaded) {
var login = allowedPlugins.login.module;
login.doLogic(...)
}