我有一个使用Hapi / React构建的应用程序,该应用程序在Nodewebkit中提供。
应用程序已安装在用户PC上并在本地运行。我的问题是:-用户运行该应用程序。同一网络上的其他一些PC可以访问该应用程序并使用它。例如,如果我在PC上运行我的应用程序,而我的IP是192.168.0.5。其他人可以在浏览器中输入该IP,它将可以使用我的应用程序。
以前,我使用Express代替Hapi,并且有一个设置可以阻止它,仅限制本地主机的连接。
如何在Hapi.js中实现同一目标?
这是我的Nodewebkit启动文件:
process.env.NODE_ENV = "desktop";
var Hapi = require('hapi');
var config = require('./config');
var models = require('./models');
log4js = require('log4js');
log4js.configure({
appenders: [
{ type: 'console' },
{ type: 'file', filename: 'logs/project.log', category: 'projects' }
]
});
logger = log4js.getLogger('projects');
logger.setLevel('ERROR');
logger.setLevel('INFO');
var plugins = [
require('inert'),
require('blipp')
];
const server = new Hapi.Server();
var path = require('path');
global.appRoot = path.resolve(__dirname);
server.connection({port: config.server.port});
server.register(plugins, function() {
server.route({
method: 'GET',
path: '/{path*}',
config: {
auth: false,
handler: {
directory: {
path: './public',
listing: false,
index: true
}
}
}
});
});
server.route(require('./server/config/routes'));
models.sequelize.sync().then(function () {
server.start(function () {
});
});
默认情况下,hapi连接在0.0.0.0接口(包括LAN在内的所有网络接口)上侦听。您希望服务仅在您的计算机上可用,因此您应该仅在回送接口上侦听:
server.connection({ port: config.server.port, address: '127.0.0.1' });
或者
server.connection({ port: config.server.port, address: 'localhost' });
在server.connection([options])
文档下查看更多信息。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句