// Server.js
var http = require('http');
var path = require('path');
var fs = require('fs');
http.createServer(function (request, response) {
console.log('request starting...');
var filePath = '.' + request.url;
if (filePath == './')
filePath = './index.html';
path.exists(filePath, function(exists) {
if (exists) {
fs.readFile(filePath, function(error, content) {
if (error) {
response.writeHead(500);
response.end();
}
else {
response.writeHead(200, { 'Content-Type': 'text/html' });
response.end(content, 'utf-8');
}
});
}
else {
response.writeHead(404);
response.end();
}
});
}).listen(8125);
console.log('Server running at http://127.0.0.1:8125/');
// index.html
<html>
<head>
<title>Rockin' Page</title>
<link type="text/css" rel="stylesheet" href="style.css" />
<script type="text/javascript" src="jquery-1.7.1.min.js"></script>
</head>
<body>
<p>This is a page. For realz, yo.</p>
</body>
<script type="text/javascript">
$(document).ready(function() {
alert('happenin');
});
</script>
</html>
我可以运行我的静态页面,但我有几个问题。
答案 0 :(得分:3)
node.js是一个平台(语言,库和解释器)和Turing-complete,即你可以用它做任何。最有可能的是,您需要一个以某种方式交互的Web应用程序。看看像a chat room这样的例子。还有lots of other resources on how to get started。
最后,由您希望您的网站取决于您。一个聊天室?一个论坛?一个搜索引擎?多人游戏?如果您只想传输静态文件(即不需要服务器状态或客户端之间的通信),则无需使用node.js.
答案 1 :(得分:2)
这是来自nodejs creator ryan ... http://www.youtube.com/watch?v=jo_B4LTHi3I
的精彩视频它解释了代码示例的含义是非常好的。
这里有一些您可以查看的资源
http://blog.jayway.com/2011/05/15/a-not-very-short-introduction-to-node-js/
答案 2 :(得分:2)
问题
<强>答案强>
从一些简单的示例和/或教程开始。我在github上分叉了 Mastering Node ,这是一个快速阅读,但仍在进行中。我已经使用expressjs快速创建静态网站(比如我的在线简历)。我还使用node.js和nodeunit来测试JavaScript或执行脚本任务,否则可以在bash,php,batch,perl等中完成。
node.js为Google的V8 JavaScript引擎提供了一个IO包装器。这意味着JavaScript不会绑定到Web浏览器,并且可以与任何类型的IO进行交互。这意味着文件,套接字,进程(phihag的图灵 - 完整答案)。它几乎可以做任何事情。
nodejs的主要目的是使IO代码处于正常状态,并且(大部分)是非阻塞的。例如,在ASP.NET中,当Web服务器收到一个请求时,请求的线程被阻塞,直到所有处理完成(除非由异步处理程序处理,这不是规则的例外)。在node.js(express,railwayjs等)中,请求处理由事件和回调处理。代码以异步方式执行,并在完成后执行回调。这类似于ASP.NET的异步页面,主要区别在于node.js和web框架之上不会创建数百万个线程。我相信Ryan的视频中讨论了线程问题。