了解node.js的某些方面

时间:2012-05-04 13:02:10

标签: javascript node.js

node.js有几个方面我不太明白。我希望有人能让事情更清楚

安装node.js时,您在哪里存储文件,以便Web浏览器可以显示您的内容?例如,Apache有一个www文件夹。

node.js会替换客户端javascript吗?

node.js如何与HTML交互?例如,如果我想将服务器中的数据放入此div元素<div id="content"></div> 在PHP中,您可以执行以下操作:<div id="content"><?php echo $content; ?></div>

你会从客户端调用node.js吗?例如:对node.js的Ajax请求以获取数据。

令我困惑的是,因为它是从服务器运行的,所以我希望我可以在浏览器上使用javascript从node.js服务器获取数据。但是,我看到的例子从未完成。

提前致谢

3 个答案:

答案 0 :(得分:6)

  

安装node.js时,您在哪里存储文件,以便Web浏览器可以显示您的内容?例如,Apache有一个www文件夹。

无论你想要什么。 node.js不提供静态内容,它运行JavaScript。您可以告诉它在启动时运行哪个脚本。

您可以编写一些提供静态内容的JavaScript,但是保留它的位置取决于您编写的代码。

  

node.js会替换客户端javascript吗?

只有在任何服务器端编程取代客户端JavaScript时才会这样做。

在服务器端使用JS的一个优点是您可以在客户端和服务器上重用库。请参阅Mojito了解一个声称专注于此的框架(我还没有时间亲自尝试)。

  

例如,如果我想将服务器中的数据放入此div元素<div id="content"></div>在PHP中,您可以执行以下操作:<div id="content"><?php echo $content; ?></div>

PHP是一种嵌入式编程语言的模板语言。 JavaScript是一种编程语言。通常,您将使用JS中的模板语言(例如moustache)。

  

你会从客户端调用node.js吗?例如:对node.js的Ajax请求以获取数据。

是的,如果你愿意的话。就像任何其他服务器端编程环境一样。 (假设您正在使用节点来运行HTTP服务器)。

答案 1 :(得分:1)

Node.js不是服务器(例如Apache)。它是一个运行Javascript的平台,带有一些内置库(所谓的模块)。在Node.js中编写服务器(HTTP或任何其他)非常容易,但您也可以编写完全不同的程序(没有网络相关,意味着在本地执行)。

我建议你阅读:http://www.nodebeginner.org/。我花了几个小时但是让我理解Node的基础知识而没有太多痛苦。

对于客户端脚本,它通常是分开的。 Node中的代码在单独的环境中运行,然后在浏览器中运行。他们可以沟通,但你必须明确地进行沟通。它与PHP中的服务器端编码没有太大区别。服务器上的代码产生一些输出(例如HTML),并将其发送给客户端。如果输出中有脚本,则客户端(浏览器)执行它。他们可以进行通信(通过XHR,websockets等),但这些脚本本身就是独立的。

答案 2 :(得分:0)

  

node.js如何与HTML交互?例如,如果我想放   数据从服务器进入这个div元素   你可以用PHP做这样的事情:

您可能会将内容作为JSON发送到JS-Client并将其插入到DOM中(使用普通的JS或JQuery)。

我在Node.js中写了一个真的琐碎(而且不是很丰富的:-P)chat application一段时间,尝试一些概念并理解工作在客户端和服务器上使用JS。也许它会给你一些线索。

修改

在此应用程序中,服务器还提供静态文件,在实现生产就绪应用程序时不应该这样做(节点不适合提供静态文件!)。