新手节点JS查询

我是node.js的新手,我想知道一些基本的东西:

  1. 在哪里把项目文件? 就像PHP一样,我们把它们放在www/ OR htdocs/

  2. 我把它们放在我的文档中的一个文件夹中,并尝试node /path/to/folder/example.js 。 它是否正确?

  3. 我试过从节点的官方文档的第一个程序,它只是打印出...到控制台,而不是打印Server is running at 127.0.0.1:8080 。 文件夹结构可以成为一个原因吗?

  4. 也有可能使整个网站使用node.js或只有特定的模块可以做? 什么样的模块?

请指导我!

谢谢!

编辑:

这是我尝试的代码,它是Node的文档中的第一个“Simple Web Server”示例:

 var http = require('http'); http.createServer(function (request, response) { response.writeHead(200, {'Content-Type': 'text/plain'}); response.end('Hello World\n'); }).listen(8124); console.log('Server running at http://127.0.0.1:8124/'); 

编辑:

这段代码只是打印出下面的代码:

 >node example.js ... 

甚至不回到节点提示!

你的问题是你试图从节点的REPL中运行你的服务器。 您需要直接从Windows命令行运行它。 你得到的“…”意味着节点的REPL没有看到有效的JavaScriptexpression式结束,所以等待你input更多。

为了回应你对上一个答案的最后一个评论,REPL在调用console.log()之后打印“undefined”的原因是它将它评估为一个expression式(这恰好有副作用,即打印出消息)然后试图打印它的返回值; 因为console.log()实际上不会返回任何东西(它只用于副作用),这就是为什么你得到“未定义”。

  1. 只要运行node命令的用户可以访问该位置,放置文件的位置并不重要。

    实际上,我build议您将node.js源文件放在任何wwwhtdocs文件夹(或任何公开可用的文件夹)之外,因为否则.js源文件在使用Web服务器(包括任何安全证书可能在源文件中,让你暴露)。

  2. 是的,这是运行节点脚本的正确方法。 不过,我build议首先cd到正确的目录,并从那里运行node example.js ,以防止pathparsing错误,尤其是当您稍后开始使用各种npm模块时。

  3. 可能不会。 很难说没有看到你想要运行的代码,但是如果由于文件夹结构等原因发生任何pathparsing错误, node就会退出,出现一个令人讨厌的错误,而不是打印“…”。

  4. 是的,可以使用node来构build整个网站。 事实上,有各种npm模块,可以帮助你更容易。 我build议你看看:

    • Express框架
    • Sencha连接

    这些框架提供了大量的花里胡哨的扩展node ,使它成为一个完整的web服务器(cookies,虚拟主机,会话,path路由等)更可行。

编辑

为了详细解答第三个问题:我已经尝试了你所粘贴的代码,这两个代码都来自正确的文件夹,正如我在第二个答案中推荐的那样,并且使用绝对path。 他们都工作得很好:

 remco@Prosperpine ~ $ node tests.js Server running at http://127.0.0.1:8124/ ^C remco@Prosperpine ~ $ cd / remco@Prosperpine / $ node /Users/remco/tests.js Server running at http://127.0.0.1:8124/ 

因此,节点服务器启动并在http://127.0.0.1:8124/上提供内容,这也适用于:

 remco@Prosperpine ~ $ wget http://127.0.0.1:8124/ && cat index.html --2012-07-03 13:25:32-- http://127.0.0.1:8124/ Connecting to 127.0.0.1:8124... connected. HTTP request sent, awaiting response... 200 OK Length: unspecified [text/plain] Saving to: `index.html' [ <=> ] 12 --.-K/s in 0s 2012-07-03 13:25:32 (901 KB/s) - `index.html' saved [12] Hello World remco@Prosperpine ~ $ 

所以我们可以得出结论:你正在尝试的代码没有问题。 你的node安装可能有问题。 这是在Linux,OSX或Windows?