3
註冊Hapi插件與通過服務器上下文使底層節點模塊可用(假設插件沒有爲模塊添加太多功能)有什麼優勢嗎?例如,爲MySQL我可以註冊一個HAPI MySQL的插件Hapijs插件vs server.bind
server.register({
register: require('hapi-mysql'),
options: {
host: "localhost",
user: "test",
password: "test"
}
}, (err) => {
if(err) {
throw err;
}
});
,然後通過服務器變量
var dbPool = server.plugins['hapi-mysql'].pool;
另一種方法是創建的MySQL池直接
var mysql = require('mysql');
var pool = mysql.createPool({
connectionLimit : 10,
host : 'localhost',
user : 'test',
password : 'test'
});
的實例訪問它
並將其綁定到服務器上下文
server.bind({dbPool: pool});
我個人比較喜歡第二種方法(server.bind),但要確保我不會失去了一些東西