下面是一个简单的node.js使用express
var express = require('express');
var app = express();
app.get('/', function(req, res){
res.send('Hello World');
});
app.listen(3000);
我想实现一个插件式架构,比如默认情况下有一个名为plugins的文件夹,当node.js启动时,他们通过themselve注册,我不需要修改主服务器.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); });
这样,在插件全部加载之前,应用程序才会开始侦听.
原文地址:https://codeday.me/bug/20190709/1414206.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。