一、概念
node.js采用Google Chrome浏览器规范引擎 由C++语言编写的。本质上是一个JavaScript的运行环境
nodejs 不仅仅能解析js代码而且没有浏览器端各种安全的级别限制
还提供一些系统级别的API,比如:
1.文件的读写
2.进程的管理
3.网络的通信
09年面世以来一直很火
其次它很强,借助于NodeJs所能完成的事情,当然不仅仅与此
Node-Webkit appjs 相似的应用:允许开发者使用web技术,也就是html/css/js来开发跨平台的、桌面的应用程序;都能兼容Mac,Linux,Windows
Jade:和NodeJs组合使用,可以高效的开发和管理后台html的模板
Ghost:是一个强大的而且用户体验超好的开源博客程序
Grunt:是一款JavaScript跑各种任务的运行工具,通过集成各种插件来完成比如说:样式编译、语法检测、脚本压缩合并、自动化测试、Shell脚本运行
文档生成或者是图片处理等各种任务,本本上使用的也是NodeJs中的模块
Nodecast:先是在pc上运行,然后启动移动设备,选择一个支持Chrome cast的应用程序,然后就可以把移动上的内容映射到电脑上,等于是把电脑当作一个流媒体来使用
Log.io:在浏览器里面可以实施监控项目日志
PDFKit:生成pdf文档
Haroopad:是Linux上的markdown编辑器
NoduinoWeb:硬件黑客希望通过Noduino Web页面来控制开源硬件,从而将软件和硬件很好的结合起来
NodeOS:基于NodeJs开发的友好的操作系统
其他语言能做的事情NodeJs都可以做 甚至能做的更好
推荐学习nodeJs的网站 1、nodejs.org nodeJS的官网,常上去逛一逛,关注一下nodeJS更新,bug的修复。 2、npmjs.com 模块的社区,上面有很多大神写的代码,可以看一看同样的功能大神是怎么学的。 3、github --应该懂得,这个不多说了。 4、stackoverflow.com技术解答社区。
对于NodeJs的版本问题
偶数位为稳定版本 基数为非稳定版本
二、Windows下安装NodeJs
首先下载一个工具git bash 可以执行git命令,使用体验较好,比较适用于NodeJs的初学者
按照过程不做详细解答,根据自己需求自行配置
其次在NodeJs官网根据需要选择合适的版本进行下载
最后进行安装成功的检查以及Path的检查
Linux、Mac系统下不做详述
三、Hello World
使用NodeJs开发Web应用非常简单,甚至都不用配置一堆文件来启动web服务器
从官网找到一段实例代码来进行Hello World!
代码简单解读:
创建了web服务器,仅需要传入一个匿名的回调函数
服务器创建成功以后 代码并没有被阻塞到那里
而是接着往下执行
这就是事件驱动的编程风格 NodeJs中会采用大量这种方式
const http = require(‘http‘); const hostname = ‘127.0.0.1‘; const port = 3000; const server = http.createServer((req, res) => { res.statusCode = 200; res.setHeader(‘Content-Type‘, ‘text/plain‘); res.end(‘Hello World\n‘); }); server.listen(port, hostname, () => { console.log(`服务器运行在 http://${hostname}:${port}/`);});
之后启动node服务,如下所示:
进入目录 cd E:\\code\\jquery\\nodeJs\\js 启动服务 node server.js
然后运行: http://127.0.0.1:3000/
会出现我们的Hello world!
代码解读:
require(‘http‘)由JavaScript模块来编写,只不过它的职责是创建web服务器及处理http相关的任务等等
通过createServer来创建一个web服务器,然后通过listen让服务器在3000端口监听请求,就可以收到任何来自于该端口的请求请求进来时该告诉它做什么,So有个匿名的回调函数
在什么时候调用?在监听到3000端口有内容进来时。有2个参数,请求体req、响应体res
git bash常用命令
NodeJs本质上是一个JavaScript执行环境只是由于它的封装加上web底层的处理赋予它更多的能力
执行环境到底是什么呢?
在浏览器中体验js环境,本次选择Chrome
而在node环境下,同样可以这么写
可以发现,对于普通的JavaScript执行,方法、变量这两者并没有什么差异
但是它们所在的环境顶层,也就是全局变量不太一样 都有自己特殊的地方
JavaScript:window、document
NodeJs:process
这就是两者之间的执行环境的不同之处