Node.js 如何使节点cms模块化
我想使我的节点cms(目前只有登录,注册,文章)模块化。就像你可以添加或删除任何模块只是删除或添加文件夹。但我找不到任何正确的、聪明的或任何方法来做这件事。你有什么经验、指南或例子可以帮助你吗 我在node方面比较新。 现在看起来是这样的。Node.js 如何使节点cms模块化,node.js,content-management-system,modularity,Node.js,Content Management System,Modularity,我想使我的节点cms(目前只有登录,注册,文章)模块化。就像你可以添加或删除任何模块只是删除或添加文件夹。但我找不到任何正确的、聪明的或任何方法来做这件事。你有什么经验、指南或例子可以帮助你吗 我在node方面比较新。 现在看起来是这样的。 在创建模块化cms的背景下,这个问题有点过于宽泛,然而,当谈到节点模块时,即使您只是添加或删除文件夹,您仍然必须在代码中要求它们 我想说的是,您可以拥有两种类型的插件: 支持的插件-您创建的插件,并为用户提供包含或不包含它们的选项 匿名插件-每个人都可以创建
在创建模块化cms的背景下,这个问题有点过于宽泛,然而,当谈到节点模块时,即使您只是添加或删除文件夹,您仍然必须在代码中要求它们 我想说的是,您可以拥有两种类型的插件:
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(...)
}