如何将网站部署到node服务器

如何将网站部署到node服务器,第1张

两点:第一是否是线上服务,第二是否需要守护进程;

第一点,如果是线上服务,毫无疑问需要一个守护进程来保证,发生意外导致进程退出后,能重新启动,提供服务;当然就需要pm2等守护进程来启动,使用方法请自行参照github;第二点,是否需要守护进程,如果不需要,那么直接node启动即可;如果需要,也不必担心pm2启动进程后并不会抢占服务器资源,如果你的server有很大的需求,毋庸置疑需要更多的内存和cpu,如果没有很大需求,pm2会基于linux的资源调度策略,并不会抢占;

  1

  这个web服务器包括三块,appjs是程序入口,负责响应url请求;routejs是路由,用来分发处理复杂的业务逻辑;systemjs是配置文件,用来配置服务器参数,如host、port等

  2

  首先来看appjs,引用模块,http处理url请求,url用来解析请求参数和路径,path只是用来匹配路径的扩展名o(╯□╰)o,fs用来读取本地静态文件,剩下两个模块后面详解。

  3

  接下来正式创建服务器处理请求,请求大致分两类,一类是静态文件,如xxxhtml、xxxjs等等,另一类是进行业务处理,如常见的增删查改操作,这一部分操作交给路由处理,这里用了一个简单的判断逻辑:通过后缀名,后缀名在systemjs中配置。

  4

  读取本地文件的时候要注意一点,那就是缓存。如果客户端发出重复请求,服务器需要判断文件自上次请求后是否发生了修改,如果未修改返回304,这样可以加快浏览器端的响应速度。这里的判断方式是通过判断请求的header的if-modified-since时间和本地文件修改时间是否一致,如果一致则返回304,否则重置该时间,第一张图是代码,第二张图是通过chrome调试工具看到的请求头部时间。

这个web服务器包括三块,appjs是程序入口,负责响应url请求;routejs是路由,用来分发处理复杂的业务逻辑;systemjs是配置文件,用来配置服务器参数,如host、port等

首先来看appjs,引用模块,http处理url请求,url用来解析请求参数和路径,path只是用来匹配路径的扩展名o(╯□╰)o,fs用来读取本地静态文件,剩下两个模块后面详解。

接下来正式创建服务器处理请求,请求大致分两类,一类是静态文件,如xxxhtml、xxxjs等等,另一类是进行业务处理,如常见的增删查改操作,这一部分操作交给路由处理,这里用了一个简单的判断逻辑:通过后缀名,后缀名在systemjs中配置。

读取本地文件的时候要注意一点,那就是缓存。如果客户端发出重复请求,服务器需要判断文件自上次请求后是否发生了修改,如果未修改返回304,这样可以加快浏览器端的响应速度。这里的判断方式是通过判断请求的header的if-modified-since时间和本地文件修改时间是否一致,如果一致则返回304,否则重置该时间,第一张图是代码,第二张图是通过chrome调试工具看到的请求头部时间。

如果需要进行业务处理,则交给路由处理了。首先路由引入具体的业务逻辑模块,然后通过解析具体的路径名来执行具体的业务逻辑,这里注意的是:由于nodejs的并发特性,记得传入回调函数来获得相应的处理结果。

1Nodejs安装包及源码下载地址为:https://nodejsorg/en/download/

Git下载地址为:https://git-scmcom/download/win。

2按照安装提示操作即可,选择安装路径、npm。

3环境变量默认C:\Users\Administrator\AppData\Roaming\npm\node_modules。

创建新的变量

创建方法:我的电脑>属性》高级系统设置》环境变量》,创建名NODE_PATH,值为nodejs的当前安装目录。

命令行工具是运行在当前计算机用户下的,所以开头总是C:/Users/XXX/Desktop>,而不会跟你的nodejs安装的位置有关。

安装node后,在cmd里有两种模式,开发模式和命令行模式,要进入开发模式直接输入node回车即可,此时可以输入代码,比如require ("express"),如果直接在命令行模式下输入require类的语句是会报错的,提示'require'不是内部或外部命令,也不是可运行的程序或批处理文件。从开发模式退出可用exit命令也可以用快捷捷,ctrl+D或两次ctrl+C

4创建应用

我们先创建一个项目目录,目录可自己定义,本案例的目录为 e:/node/serve。

由于我们要搭建的是服务器,所以我把第一个文件命名为serverjs。

在serverjs里面输入以下代码:

const http = require('http');//实例化“http”

const hostname = '127001';

const port = 3000;

const server = httpcreateServer((req, res) => {

resstatusCode = 200; //状态值200:OK

ressetHeader('Content-Type', 'text/plain'); //内容类型:text/plain

resend('Hello World\n'); //响应结果“hello world”

});

serverlisten(port, hostname, () => {  //实现监听

consolelog(`Server running at http://${hostname}:${port}/`);

});

5应用执行

打开git命令行,输入cd e:/node/serve/

之后输入node servicejs

创建一个记事本将下面的代码复制进去

保存为appjs

var

http

=

require('http');//引入响应头

httpcreateServer(function

(request,

response)

{

//参数一是与请求相关的对象

//参数二是与响应有关的对象

//

发送

HTTP

头部

//

HTTP

状态值:

200

:

OK

//

内容类型:

text/plain

responsewriteHead(200,

{'Content-Type':

'text/plain'});

//

发送响应数据

"Hello

World"

responseend('Hello

World\n');

})listen(8888);//监听端口

//

终端打印如下信息

consolelog('Server

running

at

http://127001:8888/');

以下以我的电脑上的路径为准

我是将appjs

保存在E:\NODE这个文件夹下面

接下来就是运行了打开cmd

第一步:E:

第二步:cd

NODE

//CD是

命令行改变目录的命令

第三步:node

appjs

这个是运行效果接下来访问localhost:8888就可以看到hollo

word

建议多看一些node的模块

比如

express和session

mysql之类的模块

倒是不用全部都自己重写,媒体解析这块node有现成的库 ,可以去搜搜看node ffmpeg,用别人封装好的ffmpeg来解析,但是在流媒体协议层这一块好像我没有搜到node关于rtmp的封装,不过现成的流媒体服务器可能有,实在不行就可能需要手动造轮子自己去给node封装rtmp了

不过最好还是不要用node直接处理流媒体处理和传输这一块,拿node来处理请求在把请求转给后台的流媒体服务器可能更好吧,望采纳,谢谢。

通过输入域名访问部署在本机的nodejs服务器方法:

修改系统的hosts文件就可以了,比如(想用的域名为:myappcom,前面加上www):

node服务器的host为:localhost,端口(port):8080;

修改系统hosts文件,在末尾加一行代码:127001 myappcom,前面加上www 然后保存。

在浏览器输入:myappcom:8080,前面加上www 即可访问(前提是项目node服务器正在运行,没运行会失败);

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 如何将网站部署到node服务器

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情