gpt4 book ai didi

javascript - 在 Node.js 服务器中保存和加载数据并将其传递到 html5 文件

转载 作者:行者123 更新时间:2023-12-03 03:43:13 25 4
gpt4 key购买 nike

所以我对 node.js 和 javascript 非常陌生,我通过根据请求加载 html 文件制作了一个运行良好的服务器。这个 html 文件不包含任何它自己的数据,它只是来自互联网并显示我编写的一些图像和文本。我决定让网站在打开时播放音频文件。我知道使用 <audio> 可以轻松完成此操作html5 中的标签,但 src=""让我从计算机中取出一个文件并将其放在那里,当然,当我从另一台计算机打开该网站时,显然找不到该文件,因此无法播放。我认为音频文件必须作为变量保存在服务器上并传递到 html 文件的 <audio src= > 中。标签。我该怎么做呢?这是一个大约 30 秒长的 .mp3(但我可以将其转换为任何其他音频格式)文件。我只是希望它在从另一台计算机(通过互联网)加载网站时播放。另外,我如何对我不想从互联网获取而是希望将其作为数据保留在我的服务器中的图片或任何其他数据执行相同的操作?

var http = require('http');
var fs = require('fs');

var simpleServer = http.createServer(function(request, response){
response.writeHead(200, {"Content-Type":"text/html"});
fs.readFile('./Picture.html', null, function(error, data){
if(error){
response.writeHead(404);
} else{
response.write(data);
}
response.end();
})
});

simpleServer.listen(80, '0.0.0.0', function() {
console.log('Listening to port: ' + 80);
});

console.log("Server running...");

最佳答案

简短回答

完全绕过 HTML,您还可以简单地提供音频文件而不是 Picture.html:

fs.readFile("./audiofile.mp3", function(error, data) {
if (error) {
response.writeHead(404);
} else {
response.writeHead(200, { "Content-Type": "audio/mpeg"});
response.end(data, 'utf-8');
}
});

注意:您必须将文件名 audiofile.mp3 和内容类型 audio/mpeg 替换为您要发送的文件的适当值。

检查Mozilla's Complete List of MIME Types有关文件扩展名及其关联内容类型的完整列表。

更好的答案:

http 模块相当低级,如果您正在学习,则不必要地复杂。

您可以安装express.js使用命令 npm installexpress --save 添加到您的项目。

使用express,您的代码可以简化为:

const express = require('express');
const app = express();
const port = 80;

app.get('/', (request, response) => {
response.sendFile(__dirname + '/Picture.html');
});

// Anything put in the public folder is available to the world!
app.use(express.static(__dirname + '/public'));

app.listen(port, () => {
console.log(`Listening on port: ${port}`)
});

然后您只需将所有文件放入项目目录下名为“public”的文件夹中,然后就可以从 HTML 中调用它们!

关于javascript - 在 Node.js 服务器中保存和加载数据并将其传递到 html5 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45525639/

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