在HTTP响应中返回文件

时间:2019-05-29 15:06:23

标签: javascript node.js http httpresponse

我是Node JS的新手,希望能获得任何帮助/建议。

使用NodeJS,我已经创建了一个运行this link的本地服务器(这只是一个问候世界)

从那里开始,我使用了this stack overflow snippet,它根据发出的请求类型进行响应。

当reponse.method是get / post / etc时,我想更进一步。 -我希望回复内容是文件。

换句话说,我想从HTTP响应中返回一个文件。

理论上,类似:

if(request.method == "GET")
{
    response.end("C:\[file path]\test.txt");
}

我只尝试在response.end('file directory')之后简单地复制/粘贴文件目录,但是没有打开我想要的文件。

const http = require("http");
const hostname = '127.0.0.1';
const port = 8091;

var server = http.createServer ( function(request,response){

response.writeHead(200,{"Content-Type":"text\plain"});
if(request.method == "GET")
    {
        response.end("received GET request.")
    }
else if(request.method == "POST")
    {
        response.end("received POST request.");
    }
else
    {
        response.end("Undefined request .");
    }
});

server.listen(port, hostname, () => {
    console.log(`Server running at http://${hostname}:${port}/`);
});

1 个答案:

答案 0 :(得分:1)

您可以发送文件数据,方法是先使用fs模块的readFile方法读取文件,然后再通过res.write()发送,然后再发送res.end()或仅发送{{ 1}},就像您所做的那样。这是一个示例:

res.end()

我在这里回答了类似的问题:https://stackoverflow.com/a/56285824/4882724