怎样用Node.js快速搭建服务器
如果电脑没有安装nodejs的同学可以先到node官方下载并安装好node程序。
安装好nodejs后验证一下是否安装成功!如果出现则表明node已经承装安装上去了!
安装好node之后打开cmd 输入 npm install anywhere -g 安装anywhere ,然后等待直到出现以下界面。
然后浏览器就自动打开本地访问网址,一个简单的node服务器就这样被我们搭建好啦!
我现在工作就是。。。nodejs服务端开发
简单说说nodejs吧。node虽然在国外已经10年了,但是在天朝属于刚刚兴起,待遇各方面也不错,竞争也比较小(我们公司还招人招不到呢)。而且由于天朝手游产业链的发展,node已经渐渐把C++这种程序复杂,开发效率低下的语言淘汰了。而且由于google对JS做的巨大贡献,node的效率越来越高,还有node社区的飞速发展,已经能支持起普通的游戏公司了。这方面LZ可以看看pomelo这个开源框架
(MD,我怎么像给node做推销呢!!)
我还是说说他的坏话吧,首先js效率再高,也只是解释形语言,它的效率再高也永远用于比不上c++,而且由于语言本身的限制,也会限制住很多的开发工作(当然大部分的限制其实是自己对JS了解不够)。所以大型游戏的开发node是难以胜任的。而且它要用C++嵌入也是比较复杂的,需要了解不少的东西才能做到。
上班了。。。
跟你在本地开发是相同的。
1、安装指定版本的nodejs(服务器基本软件的安装)
2、上传代码到服务器(可以通过ftp、ssh、git等方式)
3、安装项目依赖的模块
> npm install4、启动应用(也可以通过forever、pm2等工具进行管理)
> node /www/bin当然,如果你深谙运维之道,可以直接通过docker等方案将运行环境容容器化。
基本的Linux运维知识的话可以参考linuxprobecom。
还有几个需要注意的点:
1、运行权限:注意做好应用之间的隔离(使用低权限用户、文件系统隔离等),避免应用崩溃导致系统宕机等风险
2、80端口:通过nginx等进行反向代理,应用本身占用1024后的端口(无需root权限)
一,相同点
1,都调用了createServer方法。
2,当客户端接入时都会执行一个回调函数。
二,不同之处
1,回调函数的中对象的类型。net服务器中,是个连接(connect)对象,而在HTTP服务器中,则是请求和响应对象。
2,原因:
1,http服务器是更高层的API,提供了控制和HTTP协议相关的一些功能。
2,浏览器在访问站点时不会只用一个连接,很多主流的浏览器为了更快的加载网站内容,能够像同一个主机打开八个不同的连接,并发送请求。Node为了不让我们担心是请求还是连接,为我们提供了请求和响应的抽象。因此,即使你能通过reqconnection属性获得TCP连接对象,但大多数情况下你还是在与请求和响应的抽象打交道。
1安装nodejs服务(从官网下载安装),node相当于apache服务器
2在自己定义的目录下新建服务器文件如 serverjs
例如,我在E:\PhpProject\html5\websocket下创建了serverjs文件
var http = require('http');//引入http模块
//开启服务,监听8888端口
//端口号最好为6000以上
var server = httpcreateServer(function(req,res){
consolelog('有客户端连接');//创建连接成功显示在后台
这个web服务器包括三块,appjs是程序入口,负责响应url请求;routejs是路由,用来分发处理复杂的业务逻辑;systemjs是配置文件,用来配置服务器参数,如host、port等
首先来看appjs,引用模块,http处理url请求,url用来解析请求参数和路径,path只是用来匹配路径的扩展名o(╯□╰)o,fs用来读取本地静态文件,剩下两个模块后面详解。
接下来正式创建服务器处理请求,请求大致分两类,一类是静态文件,如xxxhtml、xxxjs等等,另一类是进行业务处理,如常见的增删查改操作,这一部分操作交给路由处理,这里用了一个简单的判断逻辑:通过后缀名,后缀名在systemjs中配置。
读取本地文件的时候要注意一点,那就是缓存。如果客户端发出重复请求,服务器需要判断文件自上次请求后是否发生了修改,如果未修改返回304,这样可以加快浏览器端的响应速度。这里的判断方式是通过判断请求的header的if-modified-since时间和本地文件修改时间是否一致,如果一致则返回304,否则重置该时间,
如果需要进行业务处理,则交给路由处理了。首先路由引入具体的业务逻辑模块,然后通过解析具体的路径名来执行具体的业务逻辑,这里注意的是:由于nodejs的并发特性,记得传入回调函数来获得相应的处理结果。
nodejs其实是非常底层的,从功能上说,它既是apache也是php。像搭建http服务器这种功能,本来是apache已经封装好的,但nodejs需要我们手动来搭建。其实在实际应用中,我们可以使用现成的框架。但这里,我想手动搭建,也加深一下对http服务器的理解。
我们node执行下面这个文件,我命名为httpjs,它将创建一个httpServer并监听3000端口。
0条评论