本日我们来先容Node.js的安装、利用方法,以帮你快速理解Node.js。
通过本篇的学习,你将对前端开拓有一个完全的、全新的认知,还将学习到如何将那些第三方平台的资源收为已用。
本文所提到的加密货币开拓措辞统计剖析项目SatisielAnalysis of Crptocureney Development Languages, SACDL),
在线体验地址为http//imfgithub.io/sacdl-project/
先看下 项目需求:
SACDL项目须要具备以下几个功能。
1)能够方便地读取第三方网站(这里是Github)的API,实现项目搜索功能。
2)能够对读取的数据进行集中处理,将其方便地转化为我们所须要的信息。
3)能够通过柱状图、矩阵图、表格等图表格式,将数据可视化。
4)方便扩展,为后续添加更多图表样式或其他网站API (比如交易市场的)做好准备。
技能选型:
无处不选择。不仅大方向须要选择,详细到每个开拓包也要去仔细甄别,判断它们安全吗?好用吗?性能高吗?是否有更好的办理方案? ...
仅从上述需求来说,一个HTML文件再加一个Jascrie文件基本上就可以知足需求了,一样平常来说是不须要第三方包的,Node.js更是大材小用。
但事实上,很多项目就算只是前真个项目,化如Bootstrap等,也都是基于Node.js的, 为什么? 答案很大略,由于Node.js供应了很多方便又实用的工具。
Node.js的优点详细如下:
组织方便:
JavaScript没有模块化组织代码的能力。
在一个项目中,JavaScript常日会被分割到不同的文件中,如果采取以往的办法,处理起来将会非常头终,现在利用Node.js的模块进行管理,可以让你轻松组织代码。
资源广泛:
Node.js的涌现让JavaScript第三方包像雨后春笋一样各处着花。如果须要什么,只要一条命令,Node.js 就能帮您办理了,这一点带来了极大的便利。
全栈处理:
开拓完后还有很多事情要做,比如,要对前端代码JavaScript或CsS文件进行合并、压缩、稠浊,以及项目支配等。
体验过Ruby on Rails一键支配功能的小伙伴,都会对其印象深刻。Node.js也很随意马虎优能做到这点,而且更加自然、流畅。
总之,有了Node.js,我们就可以像开拓后台程序一样组织前端代码和项目了; 有了Node.js,就可以利用它背后强大的技能社区支持。
Node.js简介:
有读者说,第一次看到 Node.js,还以为便是一个JavaScript文件呢。
实在这很正常,很多前真个运用,比如大家谈论最多的前端开拓框架三剑客——Angular.js ,Backone.js 和Ember.js便是一个JavaScript文件。
那么,Node.js 是什么呢?
官方阐明是这样的:
Node.js®is a JavaScrip runtime built on Chrome's V8 JavaScipt engine. Node.js uses anevent-driven, non-blocking I/O model that makes it lightweight and efficient.
翻译如下:
Node.js®是一个搭建在Chrome V8上的JavaScript即时运行平台,采取的是事宜驱动和非壅塞I/O模型,既轻量又高效。
普通的阐明便是,Node.js 是逐一个可以让您利用JavaSript措辞开拓运用的平台,是构建运行在分布式设备上的数据密集型实时程序的完美选择。
请把稳,这里所说的并不但是Web运用,很多人认为Nodejis仅能开拓以做事器为中央的Web运用,实在不然,它还可以开拓PC端或移动真个运用。
当然,我们看到的大部分析是Web运用,它是PHP+Apache、JSP+Tomcat、 Ruby on Rails + Passenger (或Thin)+ Nginx等传统Web开拓的绝佳替代品。
如果你对此还没有直不雅观的感想熏染, 那么我见告你逐一个信息,Node.js 的作者原来便是想开拓一种取代 Apache ,Nginx、Tomeat等产品的传统做事器软件的,
结果发展成了本日的Node.js。
你用Node.js写的每一个运用,既可以看作一个做事器软件,也可以看作一个Web运用,而且它还如此大略、高效。
什么是数据密集型、实时的运用?
谈天室、即时通信等都是数据密集型、实时的运用。
当然,还包括交易市场(比特币、股票、基金等),电子商务网站的即时交易等,乃至物联网,比如电器设备的监控和远程掌握等也是此类运用。
笔者刚完成的逐一个项目, 一家大型连锁超市的电器设备综合监控系统,便是利用Node.js开拓的。
开拓步骤:
下面所要先容的开拓过程可能会有点啰嗦,读者须要耐心点,实在实践步骤很大略。
1 、搭建环境
对付初学者,建议先去Node.js官方网站浏览一遍。
笔者个人的开拓环境详细如下,在此列出仅供参考。
操作系统是Ubuntu系统:您可以在现有的系统上,利用虚拟机软件安装Ubuntu系统。我们的全部示例和截图都是在Ubuntu系统上完成的。
IDE工具:Sublime Text或Atom。
强烈建议参考Node.js的官网信息(Node.js 官方网站的地址请拜会6.6节)。
可在Ubuntu上通过nvm安装和管理Node,js。
下面是笔者个人的安装习气,摘录个中的关键命令(各条命令都要在Ubuntu的命令行程序下运行)分别如下。
安装Nvm
$ curl –o- https://raw .githubusercontent .com/creationix/nvm/v0.29.0/install.sh 1bash
用Nvm安装Node,js
$ nvm install 5.1.0
$ nvm alias default 5.1.0
解释: 5.1.0是Nodejis的版本信息,写作本章时,Nodejis 的最新稳定版是5.4.0,长期支持版是4.2.4。
安装利用CNpm
利用淘宝npm镜像(http://pme. taobao.org ),可以提高海内组件的下载数度:
$ npm install -9 cnpm—registry=https://registry.npm.taobao.org
查看版本信息
$ nvm -v
$node –v
$npm –v
笔者的版本信息如下:
nvm 0.29.0
node v5.1.0
npm v3.3.12
2、新建工程
在电脑上,新建逐一个文件夹sacdl-project, 以此作为工程目录,路径如下:
/home/yourname/projects/sacd1 -project
我们常日会把前端代码放在public目录下,然后分别建立js、css, images等目录,末了建立文件index .html和js/app.js,分别用于显示页面和编写JavaScript代码。
SACDL工程目录构造中,特定的单词拥有特定的意思,而且有固定的用场和功能。
如bower components 文件夹用于存放前端第三方组件,比如D3.js等,由bower自动天生; node_modules 文件夹用于存放后台第三方模块,由npm自动天生。
Dist 文件夹用于存放须要合并处理的目标文件,利用gulp掩护。
test 位于测试文件夹下,存放测试代码。public 文件夹用于存放我们自己编写的代码,个中各项文件详细如下。
js/searcher.js: 表示搜索框处理代码。
js/utils.js: 表示数据处理代码。
Js/bar.js: 表示文件是D3.js的柱状图代码。
Js/treemap.js: 表示文件是矩阵图的代码。
Js/app.js: 表示用户综合调用,类似于把制器或路由。
3、前端组件
在命令行中,进人上述工程目录,安装自端管理工具bower:
$ cnpm install -g bower #也可以利用npm install★命令,二者一样,只不过cnpm利用淘宝镜像,在海内安装cnpm下载会更快些
解释:
bower是一个npm包,专门用于管理Web前端(包含js、CSS、 images、fonts 等)依赖包的。
我们可以进行大略类比,bower用于管理前端包,npm用于管理后台库(包),二者的用法十分相似。
初始化bower,代码如下:
$ bower init
结果如下所示:
kuby@kuby-virtual-machine:~/projects/doing/sacdl-projects bower init
>name sacral-project
>description 加密货币开拓措辞统计剖析,statistical Analysis of Cryptocurrency Development Languages
>main file index.js
>what types of modules does this package expose?
>keywords Cryptocurrency, bitcoin,d3js,nodejs
>authors imply
>license MIT
>homepage http://github.com/imfly/sacdl-project
>set currently installed components as dependencies? Yes
>set commonly ignored files to ignore list? Yes
>would you like to make this package as private which prevents from being accidentally published to the registry? Yes
{
name: `sacral-project`,
description:` 加密货币开拓措辞统计剖析,statistical Analysis of Cryptocurrency Development Languages`,
main : `index.js`,
authors: [
显示桌面
license: `MIT`,
keywords: [
`Cryptocurrency`
`bitcoin`
`d3js`
`nodejs`
],
homepage: `https://github.com/imfly/sacdl-project`,
moduleType: [],
private: true,
ignore: [
`/.`
`bower_components`
`test`
`tests`
]
}
Looks good ? ( Y/ n )
这样就会天生一个bower.json文件,然后,代码就可以被当作一个完全的前端组件来管理了。
通过bower安装D3.js,代码如下:
$ bower install d3 -- save
命令加上选项--save,将在bower.json文件里写入如下信息:
…
\公众d3\公众: “~3.5.12\"大众,
…
}
这样,在另一台电脑上进行开拓时,复制完代码( git clone),就可以直接运行下面的命令,自动安装所有要依赖的第三方组件了:
$ bower intall
解释:
D3.js可供应前端显示的柱状图、饼状图等,是非常著名的数据可视化前端开拓包。
海内的数据可视化软件有百度的echats,还有一个higharts,这三者常常被拿来做比较。对这三者的大略区分便是,D3.js像开拓包,可以任意编程开拓,但听说入门较难;其他两个更像是模板,拿来就可以直策应用。
笔者选择的是D3js,这样选择纯属个人喜好:一方面,笔者个人喜好完备掌握代码;另一方面,在开拓电子书版权保护和交易系统时会用到它。
前端互换群,私信发送【前端】获取