Node.js发送HTML文件等静态文件

标签 node.js

我正在使用以下脚本在我的浏览器中显示一个 html 文件:

var sys = require("sys"),
    http = require("http"),  
    url = require("url"),  
    path = require("path"),  
    fs = require("fs");  

http.createServer(function(request, response) {
    var uri = url.parse(request.url).pathname;
    var filename = path.join(process.cwd(), uri);
    path.exists(filename, function(exists) {
        if (!exists) {
            response.sendHeader(404, {"Content-Type": "text/plain"});
            response.write("404 Not Found\n");
            response.close();
            return;
        }

        fs.readFile(filename, "binary", function(err, file) {
            if (err) {
                response.sendHeader(500, {"Content-Type": "text/plain"});
                response.write(err + "\n");
                response.close();
                return;
            }

            response.sendHeader(200);
            response.write(file, "binary");
            response.close();
        });  
    });  
}).listen(8080);  

sys.puts("Server running at http://localhost:8080/");  

但是当我尝试导航到 http://localhost:8080/path/to/file 时,我收到此错误:

Object #<ServerResponse> has no method 'sendHeader'
(at line 16).

我正在使用 node-v0.4.12

最佳答案

在 Node v0.4.12 中没有方法 sendHeader 但看起来方法 response.writeHead(statusCode, [reasonPhrase], [headers]) 具有相同的方法API,因此您可以尝试将 sendHeader 替换为 writeHead

参见:http://nodejs.org/docs/v0.4.12/api/http.html#http.ServerResponse

关于Node.js发送HTML文件等静态文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7616291/

相关文章:

javascript - Electron < WebView > : Uncaught SyntaxError: Unexpected token

javascript - Node.js 上的 While 循环具有异步数据

javascript - 如何在 node.js + socket.io 中创建自定义客户端事件

node.js - 尽管提供了数据,node-querybuilder仍返回错误消息

javascript - 类型错误 : is not a constructor with Node and Express JS

node.js - 我在 Azure 上有这些模块,为什么我收到 Recipe phantom-pdf was not found.?

javascript - Node HTTP 请求永远挂起

node.js - 如何在ejs中获取数据的索引之间切换?

node.js - 从 Koa Controller 操作返回 promise 错误

javascript - 我在 nginx 中安装了一个 SSL 证书,但在浏览器中写入 url 告诉我 : ERR_CONNECTION_REFUSED