下面是一个使用express的简单node.js

var express = require('express');
var app = express();

app.get('/', function(req, res){
  res.send('Hello World');
});

app.listen(3000);

我想实现一个插件体系结构,例如默认情况下有一个名为plugins的文件夹,并且它们在node.js启动时自行注册,我不需要修改主要的server.jsfoo插件的示例,例如
PluginManager.register("init, function(app) {
    app.get('/foo', function(req, res){
        res.send('Hello from foo plugin');
    });
});

然后在我的server.js中,我会有类似
// TODO: Scan all scripts under the folder `plugins`
// TODO: Execute all the `init` hook before the app.listen
app.listen(3000);

我的问题是我的插件代码都是异步的,在app.listen()之前没有办法阻止,您对更好的插件体系结构实现有任何想法吗?

谢谢。

最佳答案

似乎加载任何插件都会像其他任何东西一样引发回调。

PluginManager.loadPlugins(function() { app.listen(3000); });

这样,直到插件全部加载后,应用程序才开始监听。

关于javascript - 使用JavaScript/Node.js实现插件架构,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11895760/

10-12 13:10
查看更多