下面是一个使用 express 的简单 node.js
var express = require('express');
var app = express();
app.get('/', function(req, res){
res.send('Hello World');
});
app.listen(3000);
我想实现一个plugin-in的架构,比如默认有个文件夹叫做plugins
,在node.js启动的时候会自己注册,不需要修改主要的 server.js
foo
插件示例,例如
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/