下面是一个使用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.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/