【问题标题】:Equivalent to laravel-style service providers (or wp-style plugins) in Node.js相当于 Node.js 中的 laravel 风格的服务提供者(或 wp 风格的插件)
【发布时间】:2014-06-24 15:24:11
【问题描述】:

我来自 PHP/Laravel 背景,但我的团队非常倾向于在我们的下一个项目中使用 Node.js(和sails),这是一个为学者提供的协作工作室。但是,在我尝试之前,我有一个关于为 node.js 应用程序创建 laravel 风格的服务提供者(或 wordpress 风格的插件)的最佳实践的问题。

在 laravel 4.1 中加载服务提供者时,类在某个点加载,调用 boot() 方法,提供者可以“挂钩”到运行时触发的事件。服务提供者列表是从配置文件中的数组中提取的(尽管从数据库中获取它们与使用 wordpress 一样简单)。

基本上,我正在寻找的是与此 PHP 代码等效的 Node.js:

// Get an array of installed plugins from a config file (or database)
$exts = require_once 'config/installed_plugins.php';

/*
 * The $exts array looks like this $ext['class_name'] = '/plugin/file/path.php'
 * and each plugin file is a class with a boot() method that registers events 
 * with callbacks 
 */

// Iterate and boot each plugin
foreach ($ext as $class=> $path) {
    require $path;
    $c = new $class();
    $c->boot();  // Now this plugins events have been registered
}

很明显,这个伪代码有很多安全漏洞,而且不适合生产,但我认为这说明了我的观点。

我知道(并且喜欢)Javascript 的事件驱动特性,所以我想使用 Node.js 很容易实现类似的东西,但我找不到在哪里或如何加载我的服务提供者并允许它们挂钩执行。

【问题讨论】:

    标签: javascript node.js events laravel sails.js


    【解决方案1】:

    js-plugins是一个基于扩展点的开放插件框架。

    它的灵感来自 Eclipse 插件系统,我希望它类似于您正在搜索的内容:

    • 主机只需要js-plugins 来管理插件
    • 插件只需要 package.json 中的一个特殊部分来描述它所提供的功能。

    根据您的要求提供的相关主机端功能:

    • 插件注册
    • 目录扫描(针对插件的package.json

    【讨论】:

      猜你喜欢
      • 2011-10-24
      • 1970-01-01
      • 1970-01-01
      • 2019-08-14
      • 2017-04-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多