我正在尝试学习nodejs,我认为做到这一点的最佳方法是尝试做一些事情而不使用express或任何其他非核心模块。我一直试图让一些文本和图像同时传递。我正在尝试的代码是:
var http = require('http');
var fs = require('fs');
var server = http.createServer(function(request,response) {
fs.readFile('my_pic.jpg', function(error, file) {
response.writeHead(200, {'content-type':'text/html'});
response.write('<p>hi there!</p>');
response.writeHead(200, {'content-type':'image/jpg'});
response.write(file, 'image');
response.end();
});
});
var port = process.env.PORT || 8080;
server.listen(port, function() {
console.log('Listening on port ' + port);
});
因此,理想的情况是:
<html>
<body>
<p>hi there</p>
<img src='my_pic.jpg'/>
</body>
</html>
但是,什么也没出现。
我写完“ hi
there”之后尝试放置一个response.end(),以显示文本,之后我尝试交换文本和图片(包括标题)的位置,以显示图片,但是我不知道了解如何使两者同时显示,例如在真实的网页上。
您能解释一下如何将不同类型的内容放到同一网页上吗?它们需要采取不同的应对措施吗?我遇到另一个问题:
nodejs-如何读取和输出jpg图像?
类似的东西看起来像解决方案,但我不知道如何将其应用于我的情况(我在服务器方面没有太多经验。)
非常感谢
编辑:从user568109的答复得到它的工作:
var http = require('http');
var fs = require('fs');
var server = http.createServer(function(request,response) {
fs.readFile('my_pic.jpg', function(error, file) {
var imagedata = new Buffer(file).toString('base64');
response.writeHead(200, {'content-type':'text/html'});
response.write("hi there!<img src='data:my_pic.jpg;base64,"+imagedata+"'/>");
response.end();
});
});
var port = process.env.PORT || 8080;
server.listen(port, function() {
console.log('Listening on port' + port);
});
但是,在嵌入图像方面,这似乎需要做很多工作-如果我想放入多个图像,则只需要继续嵌套那些文件流回调即可?
我也尝试过这种方法,但是没有用:
var http = require('http');
var fs = require('fs');
var server = http.createServer(function(request,response) {
response.writeHead(200, {'content-type':'text/html'});
response.write("hi there!<img src='my_pic.jpg'/>");
response.end();
});
var port = process.env.PORT || 8080;
server.listen(port, function() {
console.log('Listening on port' + port);
});
我不确定这是否就是人们所说的话
response.write('<img src="my_pic.jpg"/>')
,因为服务器似乎没有代表我发出另一个请求以获取图像?它只是显示一个损坏的图标图像。
如果您response.write('<img src="my_pic.jpg"/>');
如上所述进行操作,则仅当浏览器为图像发送GET时,才会发送图像文件。这将成为多部分请求。
或者您可以这样做。可以以HTML二进制格式发送图像。用 :
<img src="data:image/gif;base64,imagedata">
其中imagedata是gif图像的base64编码。所以在node.js中这样做:
//Write text in response.
content = get-image-file-contents; //store image into content
imagedata = new Buffer(content).toString('base64'); //encode to base64
response.write('<img src="data:image/gif;base64,'+imagedata+'">');//send image
response.end();
这发送一个响应,该响应同时发送文本和图像。只需一个标头即可响应response.writeHead(200, {'content-type':'text/html'});
问题内容: 我的Java应用程序需要具有比较文件系统中两个不同文件并确定它们的二进制内容是否相同的能力。 这是我当前的代码: 任何有关如何正确进行比较功能的提示或建议,将不胜感激。 问题答案: 最简单的方法是将内容读取为两个字符串,例如 ,然后对这些执行。您是否需要更复杂的差分功能?
如果请求接受头的类型为application/JSON,我希望能够发送类似JSON列表的列表,但如果请求头的类型为application/avro,则以字节数组(avro格式)发送它。这应该针对相同的RESTendpoint,如/某物/员工。我是否可以使用相同的方法但返回类型不同,Spring Boot是否会查看accept标头并正确决定调用哪个方法? 退货类型应该是什么?这是一种没有任何类型的反
几周以来,我一直在使用Spring-MVC开发一个rest api。REST-API工作正常,我几乎完成了最后一个问题,当涉及到对特定错误对象的错误处理时。 REST-API使用JSON作为序列化Java-Objects的格式。当服务执行过程中发生错误时,将创建一个特定的错误对象并将其发送回客户机。 当我的REST服务被标记为“produces=application/json”时,一切都很好。但
问题内容: TL; DR:一个JSON请求有时返回一个对象,有时返回一个键的对象数组,但我不知道如何使用Swift 4正确解析该对象。 前言:我正在使用NextBus API 制作公共汽车服务应用程序,以提供教堂山地区公共汽车的公共汽车时刻表更新和预测。但是,在获取公交车站的预测信息时遇到问题( NextBus API PDF的pp 13-15页上的预测请求信息 )。 问题: 停止预测的请求返回两
有人能解释一下为什么我通过Postman和http从外部http API得到不同的响应吗。NetCore web Api HttpClient。 这是一个密码 结果是 但Postman返回完整有效的json结果。 为什么结果从。NetCore HttpClient是部分的? 我已经尝试了指定请求头这样的选项: 还补充道: 没有帮助。
问题内容: 我将以一个非常基本的hello world终结点为例 如果我有此端点,并且希望能够转到/ hello并检索视图。 如果我传入诸如content-type之类的特定请求参数,是否可以使用SAME 路径将模型检索为json? 问题答案: 我不确定我理解你的意思。 如果您希望能够向发出请求并获得具有不同内容类型的两个不同响应,那么可以。 将方法标识为请求处理程序,但它也提供了一些选项来限制应