使用node.js作为一个简单的网络服务器

我想运行一个非常简单的HTTP服务器。每一个到example.com的GET请求都应该得到index.html的服务,但作为一个普通的HTML页面(也就是说,与你阅读普通网页时的体验相同)。

使用下面的代码,我可以读取index.html的内容。我如何将index.html作为一个普通的网页来提供?

var http = require('http');
var fs = require('fs');
var index = fs.readFileSync('index.html');

http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end(index);
}).listen(9615);

下面的一个建议很复杂,需要我为每个我想使用的资源(CSS、JavaScript、图片)文件写一个get行。

我怎样才能为一个带有一些图片、CSS和JavaScript的单一HTML页面提供服务?

我认为你现在缺少的部分是,你'正在发送。

Content-Type: text/plain

如果你想让网络浏览器渲染HTML,你应该把它改成。

Content-Type: text/html
评论(3)

与其处理一个开关语句,我认为从字典中查找内容类型会更整洁。

var contentTypesByExtension = {
    'html': "text/html",
    'js':   "text/javascript"
};

...

    var contentType = contentTypesByExtension[fileExtension] || 'text/plain';
评论(2)

编辑。

Node.js示例应用程序Node Chat具有你想要的功能。
在它的README.textfile中。 3.步骤是你正在寻找的。

step1

-创建一个在8002端口响应hello world的服务器

step2

-创建一个index.html并提供给它

第三步

-引入util.js

  • 改变逻辑,使任何静态文件都能得到服务
  • 在没有找到文件的情况下显示404

step4

-添加jquery-1.4.2.js

  • 添加client.js
  • 更改index.html以提示用户输入昵称

这里是server.js

这里是util.js

评论(5)