返回 登录
0

KeKe写谈Nodejs基础第一谈

  Nodejs的概述     

追Nodejs这个 编程语言已经很久了,一直没有打算系统学习和去开设这样相关的课程,一直犹豫不决很多时候觉得这东西不成熟是一个原因,一个是应用的规模不是很多,我一直是一个做 Java开发的老鸟,在这个行业里面摸爬滚打也有10年有余之久。对这些技术框架或者语音都有一个自己的学习体系和方法。对于现在学习Nodejs这个技术语言的话也是VIP学生的驱动和市场的需求,不得不逼迫自己走上这条血腥的学习之路。希望通过自己的Nodejs的一系列的文章能够帮助更多的人对Nodejs有进一步的了解和深入。也为了让那些加入到梦柯的学生能够找到好的工作和找到幸福的彼岸。

  Nodejs是一个Javascript运行环境,实现上他是对GooleV8引擎进行了封装。Nodejs对一些特殊用例进行了优化,提供了替代API,使得V8在非浏览器下运行的更好。其目的是可以在服务器端执行和运行javascript代码。长久以来Javascript都是一个基于浏览器的客户端脚本语言。通过将其运行环境抽离出来,就可以在服务器端运行Javascript代码,而并非仅仅依赖浏览器解析,从而就可以将其作为服务器语言,由于其拥有异步阻塞特性,因此在长连接,多请求的环境下优势非常明显。

  NodeJs的编程语言是基于Javascript的语法。如果想深入学习NodeJs的入门者,必须先熟悉Javascript编程语言。主要要熟悉了解基础部分的内容和面向对象以及ES6里面的一些新的语法和特性。



  Nodejs带来了什么?
   一上来给你们聊这个问题,主要是解决大家的疑虑,是不是学习了NodeJs就可以抛弃Java,PHP等其他的服务器端语言呢?答案是否定的。

   首先要了解NodeJs的编码语言,以及Nodejs与其他语言之间的区别和联系。传统的服务器端语言,比如我用了12年的Java来说,每一个Web Http请求连接都会产生一个线程,假设每个线程需要100KB的配置内存,因此相对于一个4G内存的服务器的话也只能接收1000-2000个并发量(同一时刻)的用户请求,当服务器承受不了。这么多用户的情况下就需要添加服务器做服务器集群,静态化处理,增加运营成本添加Nginx服务器做集群分布式来解决高并发的请求。而NodeJs解决了多请求的方法,在于其处理连接服务器的方式,在Nodejs中每个http请求连接发射一个Nodejs引擎的进程中运行的事件,而不是为每个连接生成一个OS进程。这也就是为什么说Nodejs是一种事件驱动型的语言。它可以更好的节约内存空间。



 开发中那些适合用Nodejs开发  
   从自己做web系统的经验思考,还是从淘宝,腾讯,百度的大企业的一些学员的反馈来看,以及各大社区的,视频网站的教学来看,Nodejs不适合做非常大型的企业级项目,并不是Nodejs不能做,是因为这个行业的技术群体和人员来决定,以及熟悉掌握的人才来看,包括大公司都是小规模在尝试和应用,因为加上Nodejs还有很多地方的不成熟性和不可控制性,都在不断的在完善,现在的Nodejs其实旨意还是在不断的完善API方法主要还是围绕:内核,IO,文件系统,Scoket ,长连接,异步驱动着方面去进步,周边的产品比如:gulp,grunt,bower等都是nodejs的产物。未来可能Nodejs也会从面相对象的编程思想靠拢,在javascript有一个ActionScript就是面向对象的编程方式,PHP就借鉴里面的思想和设计理念,有兴趣的学者可以去学习和了解一下。

   所以现在的教学还是应用开发都是用Nodejs去开发一些博客,论坛或者微博,个人游戏,小游戏,聊天交互,消息推送,SNS实时交流,无刷新数据推送方面还是非常的便捷和方便,启动一个服务器的成本也就几行代码,一行命令服务器就搭建起来解决跨服的应用。

   应用场景我个人在未来的梦柯系统中会使用Nodejs去小规模应用,比如数据统计分析,日记管理,用户签到,评论,小插件都可以用Nodejs辅助开发,其实大家要慢慢明白用什么技术框架或者语音其实并不重要,因为技术语言只不过都是数据交互和传输的一种媒介而已。在真实的企业开发过程中,我们一定是根据团队成员的技术角度出发,项目的开发周期,以及维护成本去出发进行架构,这样才是最明智的选择。我们为什么还要在nodejs这潭水里去游泳一圈只不过是给我们在未来的道理上把握更好的机会实现自己的价值创造出更多伟大有意义的产品。难道不是吗?

  Nodejs配置开发    
  1:官网下载:http://nodejs.org ,注意下载msi的安装文件,因为exe文件缺少一些nodejs的模块和npm等。下载lts版本即可。

        (LTS Start 和 Cuurent有何区别? v4.4.1将在2015/10/01开始LTS,是否意味着可以在线上环境中使用?) 

  2:下载安装完成后,查看启动文件:C:\Program Files\nodejs\node.exe

  3:可以将node.exe的可执行文件配置到windows的环境变量中,运行cmd,进入dos的命令窗口,输入node -v检查是否安装完毕。

图片描述

图片描述

进行到cmd命令: 输入node -v

恭喜你nodejs的环境以及安装成功了.

  Nodejs的帮助 文档 

http://nodejs.cn/doc/

里面有nodejs v4/v5 以及 jquery,express,moment.js,Lodash.js的帮助文档

  Nodejs的Hello world程序 

通过开发工具:sublime text或者hbuilder或者webstorm,笔者使用的是hbuilder开发工具新建一个web项目,新建一个server.js

//导入http服务
var http = mkimport("http");

//创建一个服务
var server = http.createServer(function(req,res){
    //响应的类型
    res.writeHead(200,{"content-type":"text/plain"});
    //向浏览器输出的内容
    res.end("hello world\n");  
});
//监听
server.listen(8888,"127.0.0.1");

console.log("Server running at http://127.0.0.1:8888 start success!!!");


/**
 * 导入封装,解决require的经常写错的问题
 * @param {Object} model
 */
function mkimport(model){
    return require(model);
}

打开命令窗口cmd,在命令窗口中输入server.js的置顶的目录,输入node server.js

F:\梦柯移动App\kekenode\01\js>node server.js
Server running at http://127.0.0.1:8888 start success!!!

启动成功!

浏览器访问: http://127.0.0.1:8888 打印效果:

hello world

提示:退出服务在命令窗口中快捷键:CTRL+C 可以退出服务。

最后:在下一篇中我们会提到启动一个完整的服务的方式.
原文链接:https://www.zhihu.com/#signin

评论