1
比方说,我有以下文件系统结构:Node.js的静态文件服务器逻辑(使用连接中间件)
/app/ Main application folder
/app.js Server JS file ran by node.js
/public Folder containing files for public website (port 80)
/index.html
/js/
/game.js
/admin/ Folder containing files used by local network system (port X)
/index.html
/js/
/screen.js
/share/ Folder containing files to be used by public website OR lan
/js/
/jquery.js
最终的结果是,admin/index.html
会是什么样子:
<script type="text/javascript" src="/js/jquery.js"></script>
<script type="text/javascript" src="/js/screen.js"></script>
也就是说,我从不同位置加载两个文件。基本上,这里的想法是“检查文件是否在/share
,如果不是,请尝试根据端口”“从文件夹加载它。
下面是当前代码我使用:
var connect = require('connect'),
sourcePublic = connect().use(
connect.static(__dirname + '/public', { maxAge: 86400000 })
),
sourceAdmin = connect().use(
connect.static(__dirname + '/admin', { maxAge: 86400000 })
),
sourceShare = connect().use(
connect.static(__dirname + '/share', { maxAge: 86400000 })
),
serverPublic = http.createServer(sourcePublic).listen(80),
serverAdmin = http.createServer(sourceAdmin).listen(90);
// ok, how do I use sourceShare?
PS:该系统应通过通过http://host:90/
本地网络是全球访问通过http://host/
(可能是一个域或静态IP)和访问。
尽管端口90上的东西不会损害系统(它只是一个输出屏幕),但我宁愿如果人们无法从外部访问它(通过确保不存在端口90转发在路由器和服务器之间)。
可爱。我知道“使用()”比使用眼睛还要多。看起来蒂姆在这里做得很好。 – Christian
最后一个问题,所以堆栈首先处理底部,是否正确? – Christian
不,它从上往下工作......所以你首先“使用”的那个将首先得到invoced。 – DeadAlready