Nodejs使用httpdispatcher提供静态镜像
Nodejs serve static image with httpdispatcher
我正在使用httpdispatcher,并希望提供静态图像。我在应用程序文件夹中有一个/resources文件夹。并具有以下代码。我试过了http://localhost:3000/resources/abc.jpg想要获得图片,但没有得到任何回应。知道吗?
var http = require('http');
var dispatcher = require('httpdispatcher');
var express = require('express');
var app = express();
dispatcher.setStatic('resources');
dispatcher.setStaticDirname('.');
const PORT=3000;
function handleRequest(request, response){
try {
console.log(request.url);
dispatcher.dispatch(request, response);
} catch(err) {
console.log(err);
}
}
dispatcher.onGet("/page1", function(req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
var response={"res":'Page One id: ' + req.params.id};
res.end(JSON.stringify(response));
});
dispatcher.onPost("/post1", function(req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
var response={"res":'Got Post Data appId: '+JSON.parse(req.body).appId};
res.end(JSON.stringify(response));
});
dispatcher.onError(function(req, res) {
res.writeHead(404);
res.end("NOT FOUND");
});
var server = http.createServer(handleRequest);
server.listen(PORT, function(){
console.log("Server listening on: http://localhost:%s", PORT);
});
为了将我的评论转化为答案,httpdispatcher
当前的静态资产实现由于以下几个原因而中断。
-
路径分析不正确。(
.
处理不当,代码中的连接不好)偏离行:var filename = "." + require('path').join(this.staticDirname, url.pathname);
-
不会从它检查的路径名中排除指定的资源url。因此,即使指定
.
作为静态目录,但指定resources
作为URL处理程序,静态目录结构也必须包括一个资源文件夹,或者URL必须包括..
,这似乎是目录遍历攻击的成熟途径。
对于您的用例,可能有更好的包目前可以工作,
目前,您可以通过HTTPServer处理程序中的匹配手动处理路由,也可以使用不同的库。举几个例子,Express,Diet with Diet static,etc.
编辑:如本期所述,截至1.1.0
,这些问题似乎已得到解决。
相关文章:
- IE中的CSS翻转动画:翻转的一面显示镜像内容
- Markdown模式代码镜像正在创建
- 更改代码镜像中TextArea的高度和宽度
- IE中的CSS翻转动画:翻转的一面显示镜像内容
- 什么CSS/JS技巧驱动镜像反转http://com.google愚人节页面
- jquery使2组单选按钮相互镜像
- Nodejs使用httpdispatcher提供静态镜像
- HTML5相机缓冲和延迟(延迟镜像)
- jQuery插件在本地主机上运行良好,但在web服务器上却与bg镜像混淆
- 镜像滚动效果打开.在两个容器之间单击
- 代码镜像批量更改
- 如何在代码镜像编辑器中设置隐藏值
- Selenium-使用换行符将文件写入代码镜像
- 默认情况下在代码镜像中启动全屏
- 如何在代码镜像编辑器中设置不同的维度
- 将变量中的文本放入代码镜像文本区域
- 多种模式代码镜像
- 如何在 Angular2 组件中访问代码镜像文本区域值
- 如何使用 NPM 镜像
- 何时有时将对象类型定义为将实例绑定方法镜像为构造函数上的静态实用程序函数很有用