无法连接到本地服务器中用Nodejs问题,怎么解决

无法连接到本地服务器中用Nodejs问题,怎么解决,第1张

搭建nodejs服务器步骤:

1安装nodejs服务(从官网下载安装),node相当于apache服务器

2在自己定义的目录下新建服务器文件如 serverjs

例如,我在E:\PhpProject\html5\websocket下创建了serverjs文件

var http = require('http');//引入http模块//开启服务,监听8888端口//端口号最好为6000以上var server = httpcreateServer(function(req,res){

/

req用来接受客户端数据

res用来向客户端发送服务器数据

/

consolelog('有客户端连接');//创建连接成功显示在后台

//一参是http请求状态,200连接成功

//连接成功后向客户端写入头信息

reswriteHeader(200,{ 'content-type' : 'text/html;charset="utf-8"'

});

reswrite('这是正文部分');//显示给客户端

resend();

})listen(8888);

consolelog('服务器开启成功');123456789101112131415161718192021222324

3在cmd控制台中cd切换进serverjs所在的目录,然后执行node serverjs命令

当控制台显示”服务器开启成功”则说明node服务器已经建立

4在浏览器中访问服务器

在浏览器中输入

localhost:8888 , 浏览器显示“这是正文部分”。

查看cmd控制台,显示 “有客户端连接”

可在多个浏览器窗口中进行以上操作,每个浏览器窗口均会对应一次“有客户端连接”

以上步骤完成,node服务搭建完毕。下面是如何通过搭建的node服务访问本地站点的 text/html文本文件

访问本地站点文件

1在自定义的目录下创建node服务文件server2js

var http = require('http');var fs = require('fs');//引入文件读取模块var documentRoot = 'E:/PhpProject/html5/websocket/www';//需要访问的文件的存放目录var server= httpcreateServer(function(req,res){

var url = requrl;

//客户端输入的url,例如如果输入localhost:8888/indexhtml

//那么这里的url == /indexhtml

var file = documentRoot + url;

consolelog(url); //E:/PhpProject/html5/websocket/www/indexhtml

fsreadFile( file , function(err,data){

/

一参为文件路径

二参为回调函数

回调函数的一参为读取错误返回的信息,返回空就没有错误

二参为读取成功返回的文本内容

/

if(err){

reswriteHeader(404,{ 'content-type' : 'text/html;charset="utf-8"'

});

reswrite('<h1>404错误</h1><p>你要找的页面不存在</p>');

resend();

}else{

reswriteHeader(200,{ 'content-type' : 'text/html;charset="utf-8"'

});

reswrite(data);//将indexhtml显示在客户端

resend();

}

});

})listen(8888);

consolelog('服务器开启成功');12345678910111213141516171819202122232425262728293031323334353637383940414243444546

2创建indexhtml文件

如果要访问indexhtml文件,当然你得先有这个文件,不然服务器读取失败,返回40412

3在cmd控制台cd切换到 server2js的目录下执行node server2js命令

开启服务器

4在浏览器输入localhost:8888/indexhtml访问 该文件

如果要直接在 命令提示符里面直接 执行 nodejs 命令 需要配环境变量

计算机>属性>高级系统设置>属性》>环境变量

在administrators 的用户变量 添加 PATH=D:\nodejs    变量值 是你nodejs 的安装路径 ,如果已经存在变量名PATH   直接加在原来变量值的后面 一分后隔开

在系统变量名 下 添加变量名 NODE_PATH=D:\nodejs\node_modules 

在你的任意目录输入命令: npm install pm2 -g

1找到全局环境PATH路径

输入命令: echo $PATH

回车后: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

你的路径和我的可能不一样,但没关系,你可以选择任何一个以:隔开的路径做为系统环境路径,我通常会选 /usr/local/bin

2:找到pm2的安装路径

在上面输入 npm install pm2 -g 全局安装时

/usr/sbin/nodejs/bin/pm2 -> /usr/sbin/nodejs/lib/node_modules/pm2/bin/pm2

/usr/sbin/nodejs/bin/pm2 是安装路径(你的可能和我的不一样)

3好了都找到了,

就重要的一步要开始了,睁大你的双眼。

命令为: ln -s /usr/sbin/nodejs/bin/pm2 /usr/local/bin/ (注意空格)

格式: ln -s 空格 pm2安装路径 空格 系统环境路径

OK,搞定,接下来验证一把…

[root@iZmwyb7v60px1zZ ~]# pm2 list

回车

$ pm2 start appjs # 启动appjs应用程序

$ pm2 start appjs –name=”api” # 启动应用程序并命名为 “api”

$ pm2 start appjs –watch # 当文件变化时自动重启应用

$ pm2 start scriptsh # 启动 bash 脚本

$ pm2 list # 列表 PM2 启动的所有的应用程序

$ pm2 monit # 显示每个应用程序的CPU和内存占用情况

$ pm2 show [app-name] # 显示应用程序的所有信息

$ pm2 logs # 显示所有应用程序的日志

$ pm2 logs [app-name] # 显示指定应用程序的日志

$ pm2 stop all # 停止所有的应用程序

$ pm2 stop 0 # 停止 id为 0的指定应用程序

$ pm2 restart all # 重启所有应用

$ pm2 reload all # 重启 cluster mode下的所有应用

$ pm2 gracefulReload all # Graceful reload all apps in cluster mode

$ pm2 delete all # 关闭并删除所有应用

$ pm2 delete 0 # 删除指定应用 id 0

$ pm2 scale api 10 # 把名字叫api的应用扩展到10个实例

$ pm2 reset [app-name] # 重置重启数量

$ pm2 startup # 创建开机自启动命令

$ pm2 save # 保存当前应用列表

$ pm2 resurrect # 重新加载保存的应用列表

$ pm2 update # Save processes, kill PM2 and restore processes

$ pm2 generate # Generate a sample json configuration file

nodejs 是有windows实现版本的,请到它的官网nodeorg下载。有两种 exe和msi都可以使用。下载后安装和正常软件安装一样。使用方法:

在开始菜单打开,选择 Nodejs command prompt ,它自动帮你加入了环境变量,直接可以使用 node 和npm命令。

node命令: node (空格)js程序,请用绝对地址。其他参数可以用node -h查看,有详细的解释

npm命令:npm是node安装第三方模块的命令,使用非常简单npm install 模块名即可。其他参数可以可以使用npm -h 查看

这里npm的模块都必须在npmorg上注册使用。

另外在提供一个中文社区 cnodejsorg不错的中文社区。也提供中文文档。

还有一点关于平台选择,其实并不是linux好,node的核心事件驱动机制在linux使用的是模拟的libev+libeio库模拟的,而windows则本身就提供了系统调用,性能据测试过的人数据是windows占大优势的。当然这并不影响你在windows和linux使用nodejs,他是完全跨平台的!

顺带提供一个新手快速入门:

1、新建一个文件,命名为 firstjs

2、文件里面写入:

1

2

3

4

5

6

7

var http = require('http');

httpcreateServer(function (request, response) {

responsewriteHead(200, {'Content-Type': 'text/plain'});

responseend('Hello World\n');})listen(8124);

consolelog('Server running at localhost');

3、在命令狂输入 运行后,在“小黑框”会显示:Server running at localhost,这时候在输入localhost:8124 即可显示Hello World。这样就搭建起一个简单的web服务器了。

去网上下载nodemsi安装文件包,里面包含了nodejs和npm;

双击nodemsi就行了,选择安装路径和npm;

在node的安装的根目录,也就是nodejs文件夹下新建两个名字为node_cache、node_global文件夹

设置环境变量:变量名:NODE_PATH

值:D:\Program Files\nodejs\node_global\node_modules

注意:因为我是把nodejs安装在D:\Program Files\目录下,所以环境变量就这样设置的;

随便找个项目文件夹,再里面新建一个service文件夹

注意:此路径不能有中文

再在里面新建一个UTF-8编码的js文件、文件名字随便起、我的文件叫testjs

在js文件里面增加入下代码

启动nodejs服务,window键+R,输入cmd然后回车

在黑窗口中输入node G:\nodejs\service\testjs

注意:结尾不用加分号;

使用Nodejs搭建Web服务器是学习Nodejs比较全面的入门教程,因为要完成一个简单的Web服务器,你需要学习Nodejs中几个比较重要的模块,比如:http协议模块、文件系统、url解析模块、路径解析模块、以及301重定向问题,下面我们就简单讲一下如何来搭建一个简单的Web服务器。

作为一个Web服务器应具备以下几个功能:

1、能显示以html/htm结尾的Web页面

2、能直接打开以js/css/json/text结尾的文件内容

3、显示资源

4、自动下载以apk/docx/zip结尾的文件

5、形如http://xxxcom/a/b/ , 则查找b目录下是否有indexhtml,如果有就显示,如果没有就列出该目录下的所有文件及文件夹,并可以进一步访问。

6、形如http://xxxcom/a/b, 则作301重定向到http://xxxcom/a/b/ , 这样可以解决内部资源引用错位的问题。

引入需要用到的几个模块:

创建服务并在指定的端口监听:

在创建服务的时候需要传递一个匿名函数processRequest 对请求进行处理,processRequest接收2个参数,分别是request和response, request对象中包含了请求的所有内容,request是用来设置响应头以及对客户端做出响应操作。

请求处理函数中有几个重点需要说一下:

对于路径中有中文的,浏览器会自动进行编码(英文不变,中文会变),因此在接收到地址后,需要对地址进行解码,否则最后得到的路径和真实路径不相符,

当访问路径不是以具体的文件结尾,并且不是以/结尾,则需要通过重定向加上/,表示当前目录,否则当前路径下的静态资源会找不到

如果访问路径是目录,则列出该目录下所有文件及文件夹,并可以点击访问,为了让中文目录能正常显示,则还要在header中设置charset=utf-8

核心代码就这么多,大概140行左右,完整的代码已上传到Git:https://githubcom/git-onepixel/Node

如果要运行demo,打开cmd切换到根目录,运行node start即可。

NPM start 需要在packagejson中定义,运行命令需要在nodejs环境下运行。

E:\workSpace\nodejs\helloworld>npm start

> helloworld@000 start E:\workSpace\nodejs\helloworld

> node /bin/www

GET / 304 564566 ms - -

GET /stylesheets/stylecss 304 2819 ms - -

如何利用NPM包管理工具中的命令操作:

1、第一步,查看npm有关的命令,可以使用npm h,如下图所示:

2、第二步,查看对包的控制权限,可以使用npm access,如下图所示:

3、第三步,如果添加用户相关信息,可以使用npm add-user,如下图所示:

4、第四步,查看api帮助文档,使用命令npm apihelp,如下图所示:

5、第五步,查看作者或创建人,使用npm author命令,如下图所示:

6、第六步,查看npm安装的可执行文件路径,使用npm bin命令,如下图所示:

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 无法连接到本地服务器中用Nodejs问题,怎么解决

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情