官方说明javascript
1.NodeJS宣称其目标是“旨在提供一种简单的构建可伸缩网络程序的方法”。php
2.node是一个基于Chrome V8引擎进行代码解释的、轻量、可伸缩的具备事件驱动和非阻塞I/O机制的js运行环境。前端
3.node适合处理高并发要求的项目,适合高I/O密集型应用。java
因此:不适合CPU密集型应用;node
CPU密集型应用给Node带来的挑战主要是:因为JavaScript单线程的缘由,若是有长时间运行的计算(好比大循环),将会致使CPU时间片不能释放,使得后续I/O没法发起。不过,能够分解大型运算任务为多个小任务,使得运算可以适时释放,不阻塞I/O调用的发起。jquery
4.node当下很火。webpack
/-----------------------------------------------------------------------/git
个人理解web
对于node.js个人了解是从我开始使用git和webpack的时候,由于要用到node环境,并且要接触一部分的node控制台代码,不过这些都是简单的了解,让我知道了,node是可让git和webpack运行的一种安装环境,而且是个npm包管理工具,你须要什么代码,node的包也会有一部分,好比说jquery,bootstrap等;ajax
而后就是开始看到node官网的文档,了解到node能够做为后台的语言进行一系列的操做,可以本身搭建服务器,做为服务器的时候咱们会用到http模块,这属于node自带的模块,而后就是createserver搭建服务器,后来以为一直npm建立开启服务器比较麻烦,就在网上了解到有个supervisor这个插件吧,能够监听服务器,而后就开始考虑做为后台的功能,比后台给数据以前本身先测试一下,再好比,了解一下服务器与终端之间的交流Socket和H5新增的webSocket,作点聊天室的demo,固然了有点丑陋,不过基本的对话功能也是基于sorket实现了。
有时候node也须要进行与数据库的连接,数据库的端口为27017---下面以node中的路由/liuyan---->数据库User,集合liuyan作一个简单的查找demo
MySQL我就有点看不懂了,而对于SQLServer也是仅限于学校的知识,那么在网上学的时候就看到了另外一种Mongodb,(稍后谈一下下);
var router = express.Router(); var mongodb = require("mongodb").MongodbClient; var db_str = "mongodb://127.0.0.1:27017/{{你数据库的名字}}" router.get("/liuyan", (req, res) => { // res.render("liuyan",{}); var findLy = function(db, cb) { var conn = db.collection("liuyan"); conn.find({}).toArray((err, result) => { cb(result); }) } mongodb.connect(db_str, (err, db) => { if (!err) { findLy(db, (result) => { res.render("liuyan", { result: result }); db.close(); }) } }) })
简单说一下Mongodb,我用这个数据库也是因为node.js,并且,控制台的代码我也没有记得很清楚,因此就常在小火箭V3可视化工具里操做Mongodb的数据。
Mongodb:做为数据库是一种不难的数据库,他的流行应该归于他的分布式和非关系型数据库上,以及操做简单,有大量的查询指令,可是他已经不支持32位系统了,而且占用空间比较大。
并且和通常数据库不一样的是,他的三元素构成是数据库,集合,文档,固然也和关系型数据库中的数据库,表,行相对应。而且,使用前(仅限于window系统,Mac等有钱了再买吧)须要将在盘符下的mogodb/bin/mongod.exe和mongo.exe依次打开,敲黑板这是重点操做,而且,直接盘符下还要有一个空的db文件夹,用来存储数据。
后来,了解到node能够建立后台项目,摸索着用express框架作了个我的的系统,express -e pro建立pro文件目录结构,
1 pro 2 |----bin 3 | |----www 4 | 5 |----public 6 | |----images 7 | |----javascript 8 | |----stylesheet 9 | 10 |----router 11 | |----index.js 12 | |----users.js 13 | 14 |----view 15 | |----index.ejs 16 | |----error.ejs 17 | 18 |----app.js
固然,express也须要进行npm install下载,页面虽然说不够完美不过也在一直完善,页面的ejs文件也是从最初的index.ejs到如今的有了简单的登陆注册留言等,虽然里面的数据是我写的假的数据,可是也是我用node.js连接数据库,再使用mongodb的查询或者是写入的代码进行的浏览以及写入,而数据库的控制台的代码查看着有点费劲,我就用他的可视化工具“v3小火箭”进行操做。
--------------------------------------------------------------------------------------------
在接下来的了解中发现,node.js不是很适合做为纯粹的后台,和java,php这种成熟的语言来讲,他自己就有必定的缺陷,好比不能充分利用cpu,并且他是单线程的,有一部分可能性会崩溃。但他也有好处,高并发的场景下很实用,就是由于他的非阻塞I/O机制,很适合那种大量ajax请求的状况,并且他和前端js的合做很好,让我一个前端人员也有机会接触到了后台的语言。
虽然如今node.js出现没几年,东西比较新,可是,他做为和js合做的很融洽的后台,再加上很是好用的npm,能够加快咱们的代码开发速度.
不过要说node火了,我以为否则,而为隐隐以为这是假象,虽然node用起来真的很顺心,也放宽了撸代码时间。不过,就目前来讲,node还算是挺新的,还算是在开荒的状态,想让他真的火起来,可能还须要一点时间。而他火起来的缘由,大概是,前端同志们被后台大哥们"打压"的过久了吧,哈哈哈,好不容易有了可能翻身的机会,抓住机会就开始学,固然,不可否认node和前端的接触真的很融洽,并且接触的Mongodb这个数据库也不是很艰难。
(ps:作项目和它火不火有什么关系啊,项目以最优的水平作出来,bug调试好,我以为就很不错了,哈哈哈)