node.js如何根据URL返回指定的图片详解


Posted in Javascript onOctober 21, 2020

学node的过程碰到的一些坑,当时以为只需将图片放在html页面指定的路径下,访问该页面时,图片也会获取到,但是现在想来,或许是服务器只提供这个html的文件,交由客户端的浏览器编译,但是在客户端里并不存在该图片文件,所以图片自然无法获取到。在看其他页面的源代码后,发现,他们的图片路径都是通过访问网络资源得到的,所以说,图片也应属于网络资源,而不是这样:

代码便不是如下所示:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <title></title>
  </head>
  <body>
    <img src="img/NAROTA.jpg"/>
  </body>
</html>

那么怎么设置网络资源呢,比如一张png格式的图片,我们需要知道,网络资源首先放在我们的服务器,所以我们的node.js服务器中应该在客户端访问这张图片时读取这张图片,然后再返回给客户端,下面我们直接贴出代码,这个是我自己瞎捉摸的,我目前也不知道主流的做法是怎么样的,但是还是优化了一下url的解析:

var http=require("http");
var fs=require("fs");
var url=require("url");
//创建一个server的实例
var server=http.createServer(function(req,res){
var pathname=url.parse(req.url).pathname;
//当url的ip加端口号的后1到7位为img/png时,返回以该路径下对应的png图片
if(pathname.substring(1,8)==='img/png'){
    fs.readFile(pathname.substring(1),function(err,data){
    res.writeHead(200,{'Content-Type':'image/png'});
    res.end(data);
  });
}
//jpg同上
if(pathname.substring(1,8)==='img/jpg'){
    fs.readFile(pathname.substring(1),function(err,data){
    res.writeHead(200,{'Content-Type':'image/jpeg'});
    res.end(data);
  });
  }
}).listen(3010);//监听在3010端口 
console.log('服务器已开启......');

主要是如何解析url,比如我要访问127.0.0.1:3010这个ip加端口的服务器,其目录下的img/png的warn.png这张图片,在上述代码中,我就只需访问127.0.0.1:3010/img/png/warn.png ,效果如下:

node.js如何根据URL返回指定的图片详解

具体思路是,将url中的img/png/xxx.png解析出来作为我们读取图片的参数,这样做得好处是只需一条判断语句即可处理所有的png类型的图片。

在node.js中,可以通过writeHead() 方法写头,表明该文件的类型,可以将大部分的文件类型设置为网络资源。
下面是一些常用的HTTP Content-Type,希望对大家能有帮助:

node.js如何根据URL返回指定的图片详解

总结

到此这篇关于node.js如何根据URL返回指定图片的文章就介绍到这了,更多相关node.js根据URL返回图片内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
基于Jquery实现的一个图片滚动切换
Jun 21 Javascript
如何使用jquery控制CSS样式,并且取消Css样式(如背景色,有实例)
Jul 09 Javascript
jquery自动切换tabs选项卡的具体实现
Dec 24 Javascript
javaScript中with函数用法实例分析
Jun 08 Javascript
JavaScript判断数组是否包含指定元素的方法
Jul 01 Javascript
用JavaScript判断CSS浏览器类型前缀的两种方法
Oct 08 Javascript
javascript运算符——逻辑运算符全面解析
Jun 27 Javascript
AngularJS基础 ng-show 指令简单示例
Aug 03 Javascript
jQuery中show与hide方法用法示例
Sep 16 Javascript
完美解决node.js中使用https请求报CERT_UNTRUSTED的问题
Jan 08 Javascript
Vue.js组件高级特性实例详解
Dec 24 Javascript
js+canvas实现简单扫雷小游戏
Jan 22 Javascript
vue中template的三种写法示例
Oct 21 #Javascript
Vue使用v-viewer实现图片预览
Oct 21 #Javascript
UEditor 自定义图片视频尺寸校验功能的实现代码
Oct 20 #Javascript
Vue+axios封装请求实现前后端分离
Oct 23 #Javascript
构建一个JavaScript插件系统
Oct 20 #Javascript
vue中解决微信html5原生ios虚拟键返回不刷新问题
Oct 20 #Javascript
原生js实现俄罗斯方块
Oct 20 #Javascript
You might like
PHP字符编码问题之GB2312 VS UTF-8解决方法
2011/06/23 PHP
php一维二维数组键排序方法实例总结
2014/11/13 PHP
PHP基于文件存储实现缓存的方法
2015/07/20 PHP
使用PHP接受文件并获得其后缀名的方法
2015/08/05 PHP
浅谈php使用curl模拟多线程发送请求
2019/03/08 PHP
Javascript----文件操作
2007/01/18 Javascript
javascript实现简单的on事件绑定
2016/08/23 Javascript
使用BootStrap进行轮播图的制作
2017/01/06 Javascript
js中setTimeout的妙用--防止循环超时
2017/03/06 Javascript
JavaScript对象_动力节点Java学院整理
2017/06/23 Javascript
使用OPENLAYERS3实现点选的方法
2020/09/24 Javascript
解决html-jquery/js引用外部图片时遇到看不了或出现403的问题
2017/09/22 jQuery
浅谈Angular 观察者模式理解
2018/11/01 Javascript
微信小程序实现发送验证码按钮效果
2018/12/20 Javascript
Python实现国外赌场热门游戏Craps(双骰子)
2015/03/31 Python
利用Python批量生成任意尺寸的图片
2016/08/29 Python
你所不知道的Python奇技淫巧13招【实用】
2016/12/14 Python
windows系统下Python环境搭建教程
2017/03/28 Python
python实现list元素按关键字相加减的方法示例
2017/06/09 Python
python shell根据ip获取主机名代码示例
2017/11/25 Python
Python3环境安装Scrapy爬虫框架过程及常见错误
2019/07/12 Python
Python3远程监控程序的实现方法
2019/07/15 Python
PyCharm搭建Spark开发环境的实现步骤
2019/09/05 Python
Python如何使用bokeh包和geojson数据绘制地图
2020/03/21 Python
Python docutils文档编译过程方法解析
2020/06/23 Python
Python使用pyexecjs代码案例解析
2020/07/13 Python
HTML5 Canvas中绘制矩形实例
2015/01/01 HTML / CSS
英国Lookfantastic中文网站:护肤品美妆美发购物(英国直邮)
2020/04/27 全球购物
环保倡议书500字
2014/05/15 职场文书
2014党支部对照检查材料思想汇报
2014/10/05 职场文书
公安纪律作风整顿剖析材料
2014/10/10 职场文书
2014年除四害工作总结
2014/12/06 职场文书
开会通知
2015/04/20 职场文书
CSS 还能这样玩?奇思妙想渐变的艺术
2021/04/27 HTML / CSS
日本十大血腥动漫,那些被禁播的动漫盘点
2022/03/21 日漫
win server2012 r2服务器共享文件夹如何设置
2022/06/21 Servers