2012-01-01 94 views
21

我刚开始潜入Node.js的经过几年PHP节目,我想建立一个的Node.js应用我的下一个项目,但我不知道该怎么做。如何在Node.js上构建网站?

Node.js jumpstart是否有任何资源?

在此先感谢!

回答

27

您应该将Node.js视为某种Apache + PHP,这意味着您可以使用Node为您的网站和Web服务器编程。

节点与你的基本PHP有一些重要的区别,它是平坦的,异步的,非阻塞的。你必须学会​​如何处理回调,不要阻止事件循环和其他事情。

你应该做的是在开始时尝试学习Node的基本功能,这里有一些很棒的资源:https://stackoverflow.com/tags/node.js/info(我最喜欢的是nodetuts.com,它的作者是Hands on Node)。

学习完基础知识之后,如果您的应用程序专注于实时,您会发现Express作为Web框架非常有用,Socket.IO也很有用。

0

Node.js本质上是您的网络服务器,它将取代Apache,因此唯一可以运行Nodejs的托管服务器是专用服务器或您需要安装和运行nodejs的云实例。运行node.js的机器需要有一个指向它的域名,或者您可以访问服务器的唯一方式是通过它的IP地址,这就是您的本地主机。

3

您需要在Web服务器上运行Node.js。基本上,你需要一个VPS或专用服务器,你可以完全控制它。 [PHP通过标准的Web服务器Apache运行。 Node.js 的网络服务器。]

或者你会发现一个Node.js host会为你做。

+0

我知道这是旧的文章,但它可以运行我的大学计算机上的node.js服务器? – masfenix 2015-02-06 21:44:42

+1

节点JS主机的链接不再有效,请更新您的答案 – 2016-07-11 12:28:32

6

我想你正在寻找一个node.js跳转开始建立一个有意义的网页与节点。看看express,这是一个节点的web框架。他们提供了一个很好但很短的教程(在指导下)。

1

另一种选择是使用类似Knockout.js(http://knockoutjs.com/)的东西,并让页面将JSONP调用到Node.js服务器。使用Node向客户端发送JSON非常简单,因为它是服务器上的JavaScript。在客户端上使用框架使得基于该JSON数据创建动态页面变得非常简单。

缺点是旧版浏览器没有优雅的降级功能。优点是从一开始就有一个内置伟大AJAX的潜在快速网站。

下面是使用节点来产生一个JSONP响应一些示例代码:

function writeJsonpResponse(res, jsonpcallback, obj) { 
    var serialized = JSON.stringify(obj); 

    res.writeHead(200, {'Content-Type': 'application/javascript'}); 
    res.write(jsonpcallback + '(' + serialized + ');'); 
    res.end(); 
}