gpt4 book ai didi

javascript - 通过 http createServer 提供图像

转载 作者:行者123 更新时间:2023-12-01 01:56:26 26 4
gpt4 key购买 nike

我正在尝试使用 Node.JS 创建一个基本的网络服务器,但在正确提供图像时遇到了问题。

var server = http.createServer(function (request, response){
if(request.url === '/') {
fs.readFile('public/index.html', 'utf8', function(errors, contents){
response.write(contents);
response.end();
});
} else {
fs.readFile("public" + request.url, 'utf8', function(errors, contents){
if (!errors) {
response.end(contents);
} else {
console.log('Failed to read file: /public' + request.url);
response.writeHead(404);
response.end();
}
});
}
});

一切正常,除了如果你去查看图像,它会尝试下载它(我认为它已损坏 - 无法打开它),这不是我想要的,我希望图像能够在浏览器(不通过标签)

奖励点:我需要能够正确给出正确的 header (我是否只需要一个 switch 语句并通过它设置它们?),因为 chrome 会发出警告

Resource interpreted as Stylesheet but transferred with MIME type text/plain: "http://localhost/css.css".

最佳答案

您可以使用expressjs:http://expressjs.com/

const express = require('express')
const app = express()

app.get('/', (req, res) => res.sendFile('public/index.html'))
app.use(express.static('public'))

app.listen(8080, () => console.log('Example app listening on port 8080!'))
<小时/>

注意:

您的代码不安全:"public"+ request.url。您的用户可以获取您服务器的所有文件: fs.readFileSync("public/../../../README.txt");

您将在父文件夹上收到错误。

Error: ENOENT: no such file or directory, open 'C:\README.txt'.

关于javascript - 通过 http createServer 提供图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51005131/

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