w279471172 2024-04-01 16:47 采纳率: 18.8%
浏览 1
已结题

nodejs服务器的发送数据问题


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

const server = http.createServer((req, res) => {
  console.log(res.url) //为空

  res.setHeader('Access-Control-Allow-Origin', '*'); 


    fs.readFile('guai.plist', (err, data) => {
        res.end(data);                      //1
    });

});

 fs.readFile('guai.png', (err, data) => {
        res.end(data);             / /2
    });

});



server.listen(8080, () => {
  console.log('kai shi');
});

1 2 两处可以有什么条件 可供判断 让服务器选择 发送PNG文件 或者上面的 plist

  • 写回答

3条回答 默认 最新

  • GISer Liu 2024-04-01 17:28
    关注

    该回答引用自GPT-3.5,由博主GISer Liu编写:

    根据你的描述,你想要实现一个 Node.js 服务器,可以根据请求的 URL 来选择发送不同的文件,是吧?如果是这样的话,可以通过解析请求的 URL
    来实现这个功能。具体的做法是在创建服务器时,监听请求的 URL,然后根据不同的 URL 返回不同的文件内容。
    这里给出一个简单的示例代码,仅供参考:
    javascriptCopy code

    const http = require('http');
    const fs = require('fs');
    const server = http.createServer((req, res) => {
    console.log(req.url); // 打印请求的 URL
    // 设置跨域头部信息
    res.setHeader('Access-Control-Allow-Origin', '*');
    // 根据请求的 URL 发送不同的文件
    if (req.url === '/guai.plist') {
    fs.readFile('guai.plist', (err, data) => {
    if (err) {
    res.writeHead(404);
    res.end(JSON.stringify(err));
    return;
    }
    res.writeHead(200, { 'Content-Type': 'text/plain' });
    res.end(data);
    });
    } else if (req.url === '/guai.png') {
    fs.readFile('guai.png', (err, data) => {
    if (err) {
    res.writeHead(404);
    res.end(JSON.stringify(err));
    return;
    }
    res.writeHead(200, { 'Content-Type': 'image/png' });
    res.end(data);
    });
    } else {
    res.writeHead(404);
    res.end('File not found');
    }
    });
    server.listen(8080, () => {
    console.log('服务器已启动');
    });
    

    这段代码创建了一个简单的 Node.js 服务器,监听在 8080 端口。当收到请求时,会根据请求的 URL 来判断发送哪个文件,如果 URL 是 /guai.plist,则发送 guai.plist 文件的内容,如果 URL 是 /guai.png,则发送
    guai.png 文件的内容。如果 URL 不是这两个值,则返回 404 错误。

    如果该回答解决了您的问题,请采纳!如果没有,请参考以下方案进行修订

    用户答题指南

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 4月9日
  • 已采纳回答 4月1日
  • 创建了问题 4月1日