gpt4 book ai didi

javascript - Node js 显示来自服务器的图像

转载 作者:行者123 更新时间:2023-12-02 17:49:26 27 4
gpt4 key购买 nike

我正在尝试在具有端口 5000 的本地主机上的基本网页上显示图像这是main.js

var http = require('http');

var domain = require('domain');

var root = require('./root');
var image = require('./image');



function replyError(res) {

try {

res.writeHead(500);

res.end('Server error.');

} catch (err) {

console.error('Error sending response with code 500.');

}

};



function replyNotFound(res) {

res.writeHead(404);

res.end('not found');

}



function handleRequest(req, res) {

console.log('Handling request for ' + req.url);

if (req.url === '/') {

root.handle(req, res);

} else if (req.url === '/image.png'){

image.handle(req, res);

} else {

replyNotFound(res);

}

}



var server = http.createServer();



server.on('request', function(req, res) {

var d = domain.create();

d.on('error', function(err) {

console.error(req.url, err.message);

replyError(res);

});

d.run(function() { handleRequest(req, res); });

});



function CallbackToInit(){

server.listen(5000);
};
root.init(CallbackToInit);

使用回调,我希望服务器仅在以下代码的 init 函数运行后才开始监听(5000)

var http = require('http');

var body;

exports.handle = function(req, res) {
res.writeHead(200, {
'Content-Type': 'image/png'
});
res.end(body);
};

exports.init = function(cb) {
require('fs').readFile('image.png', function(err, data) {
if (err) throw err;
body = data;
cb();
});
}

这是一项我无法使用 Express 的作业

我正在尝试显示 image.png,我认为 body = data 不起作用,因为它不能像字符串一样保存图像?我不想将任何 HTML 放入我的 js 文件中。

最佳答案

不要推出自己的应用服务器。使用伟大的 Web 应用程序框架之一,例如 expressconnect .

var express = require('express');
var app = express();

app.use(express.logger());
app.use(express.static(__dirname + '/public'));
app.listen(process.env.PORT || 5000);

相信我,这更好。

关于javascript - Node js 显示来自服务器的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21489689/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com