Helloworld示例不起作用 - 我是否需要嵌入NodeJS?

cuz*_*AZN 3 javascript node.js

我正在写一个简单的Helloworld示例,可以在互联网上随处可见:

[nodejs.php] [位置:localhost/nodejs.php]

<!DOCTYPE HTML>
<html>
    <head>
        <script type="text/javascript">
            var http = require('http');

            var server = http.createServer(function (request, response) {
              response.writeHead(200, {"Content-Type": "text/plain"});
              response.end("Hello World\n");
            }).listen(8000);

            console.log("Server running at http://127.0.0.1:8000/");
        </script>
    </head>


</html>
Run Code Online (Sandbox Code Playgroud)

代码非常简单易懂.但是,当我尝试运行代码时,出现以下错误:

Uncaught ReferenceError: require is not defined 
Run Code Online (Sandbox Code Playgroud)

我理解这条消息意味着require()我的页面中没有任何功能.当然没有.我再次浏览Google并尝试了不同的教程,以确定我是否需要nodejs.js在网页中嵌入任何类型的文件,但所有教程似乎都没有提到这一点,我尝试进入Nodejs文件夹.我发现很多文件一样edit.js,adduser.js,bin.js...,我正式卡.我一遍又一遍地看看Nodejs究竟是什么,为什么这个例子不起作用,但Google没有太多的支持.到目前为止,据我所知:

  • nodejs是一个javascript工具包,它是事件驱动的非阻塞I/O.
  • nodejs允许用户使用javascript访问后端编码
  • nodejs解析V8 Google Chrome javascript引擎
  • nodejs可以创建并发服务器应用程序
  • 在我的假设中,nodeJS是一个框架(很可能是错误的),它连接服务器和客户端以允许后端访问

如果我错了,请纠正我,我真的很感激.我需要有更多关于这个主题的知识,而那里的资源并不多.

我的问题是:

  1. 如果NodeJS是一个javascript库,我怎么能将它嵌入我的网站?localhost与在线托管有什么不同吗?
  2. 我经常看到有人在处理listen(8000),关于什么是端口?我应该选择哪个端口?
  3. Socket.io和NodeJS是一样的,如何安装它(我知道Socket.io在Nodejs上运行)?NodeJS的Socket.io和jQuery的抽象jQuery一样吗?为了将来参考,当我想在NodeJS中使用另一个库时,有哪些标准协议可以做到?

谢谢大家,

蒂姆.

Que*_*tin 7

我需要嵌入NodeJS吗?

不需要.您需要使用Node运行它,而不是使用Web浏览器.

如果NodeJS是一个JavaScript库

事实并非如此

我怎么能把它嵌入我的网站?

您可以将它安装在您的Web服务器上并在那里运行(服务器端).

localhost与在线托管有什么不同吗?

没有

我经常看到有人在处理listen(8000),关于什么是端口?

如果您正在运行TCP/IP服务器,则必须侦听端口以便可以将数据包发送到该端口.

我应该选择哪个端口?

一个没有被其他东西使用的东西

Socket.io与NodeJS相同吗?

不,它分为两部分.一部分在Node上运行,另一部分在浏览器中运行.

怎么安装呢?

网站上说明.

NodeJS的Socket.io和jQuery的抽象jQuery一样吗?

没有

为了将来参考,当我想在NodeJS中使用另一个库时,有哪些标准协议可以做到?

CommonJS的

那么就像NodeJS(以愚蠢的解释方式)就像PHP一样.我的意思是,你使用NodeJS而不是PHP?

简单来说,是的.

而不是找到PHP主机,你需要一个NodeJS主机?

有可能.我不知道是否有人提供NodeJS托管本身.我想使用Node时使用VPS.

如果是这样,在安装它之后,NodeJS的htdocs(或任何类似的)文件夹在哪里可以启动?

NodeJS不是Web服务器.它是运行JavaScript的一种方法.您可以使用JavaScript编写Web服务器并通过Node运行它,这就是您的问题中的代码所做的事情.该代码没有htdocs文件夹,因为它总是返回相同的硬编码响应.如果您希望它根据请求的URL从文件系统中读取文件,则需要添加该功能(通过检查request对象并使用文件系统模块).

它运行Localhost吗?

它可以在您想要的任何网络接口上运行.请参阅listen()方法的文档.由于您尚未传递hostname参数,因此它将侦听所有接口(包括localhost).