4
var sys = require("sys"),  
my_http = require("http");  
my_http.createServer(function(request,response){  
    sys.puts("I got kicked");  
    response.writeHeader(200, {"Content-Type": "text/plain"});  
    response.write("Hello World");  
    response.end();  
}).listen(8080);  
sys.puts("Server Running on 8080");

以上是我的基本网络服务器,现在我想运行包含 HTML 和 JS 文件的应用程序。我会将这些文件放在哪里,以便我可以通过我的端口访问它。

我使用Apache and Xampp,所以我将我的文件放在htdocs目录中并通过我的浏览器访问它,但就我而言,node.js我完全糊涂了?

4

3 回答 3

12
于 2013-09-13T13:26:10.000 回答
1

您不需要 Apache 即可使用 Node.js。如果你想要一个基本的服务器,你可以使用Connect中间件:

var connect = require('connect');
var port = process.env.PORT || 8080;

connect()
  .use( connect.static(__dirname + '/public') )
  .use( function (request, response) {
    /* your code */
  })
  .listen(port);

与您的 js 文件一起创建public目录,将静态文件放在那里并启动服务器

$ node index.js

如果您没有安装 Connect:

$ npm install connect --save
于 2013-09-13T11:20:19.390 回答
1

您可以将文件放在您喜欢的任何位置,只要服务器运行的用户可以读取它们。

但是,如果您希望该代码为它们提供服务,那么您需要将response.*您拥有的所有代码替换为以下代码:

  1. 根据中的数据确定正在请求哪个文件request
  2. 确定该文件是否存在(如果不存在则发送 404 响应)
  3. 确定该文件类型的正确内容类型并适当设置标题
  4. 读入文件并在响应中输出

换句话说:Node.js 不是 Web 服务器。您可以用 JavaScript 编写 Web 服务器并在 Node.js 上运行它,但您只是沿着这条路线迈出了第一步。

于 2013-09-13T11:11:38.867 回答