新的旅程:NodeJS - 环境篇
用ASP.NET MVC好多年了,还记得当初为MVC所倡导的"DRY"理念所感染,为Razor的简单而震撼。随着MVC的成熟反而让我觉得似乎渐渐地走入了微软营造的一种高技术的牢笼。 感觉MVC越来越也让人感觉笨重了似乎失去了以往的灵巧,有时候更有点像在用JAVA的感觉。在MVC4中还看到了MS加入的许多非C#传统的东东,例如OWIN吧,我承认是个好东西但却总是让人有一种不知到从哪里拿来硬用C#写出来的感觉。写个小小的Web就要配置一大堆的东东,安装老半天的环境,忍受IIS那吃货漫长的启动时间...
今天出于好奇拿起了Node.js,想看看这个近年炙手可热的东东究竟有什么厉害的地方, 没想到一下子就被她给吸引住了!有几点是最引诱我的:
- 性能高,基于Google V8 引擎开发,以非阻塞式线程模型为基础。(稍试了一下,页面输出的时间与IIS相比的话那就是火箭与乌龟在赛跑了)
- 完全模块化开发,模块之间的重用率很高。
- 简单而且第三方资源极其丰富,很多MVC内的复杂功能只需要装一两个模块就能完成,内中还包括了不少由MS自己开发的模块,如 azure.
- 基于javascript, 这意味着可以使用弱类型的语言开发可以省下很多在C#中很多的类型相关操作,而且可以任意地做Ioc想想这是多爽的事。而且一套代码写得好的话既可以运行于服务端也可以使用于客户端,那么对于客户端与服务端具有相同或类似业务处理逻辑的代码不就可以合为一体了吗?
- 视图引擎众多,可以按自己的喜好简单地更换(感觉还是jade最为简结)
我在Window下安装过node.js的运行环境,但非常坑爹NPM经常出问题可能是权限的问题吧,总之用NPM安装很多常用包时都会出错。 但在Ubuntu下跑就没有这类问题发生,因为可以用sudo为NPM授权。在这里就分享一下建立NodeJS开发环境的一点小经验。
安装node.js
在Ubuntu下安装NodeJS非常简单,只需要在命令窗口键入以下命令即可:
sudo apt-get install python-software-properties
sudo add-apt-repository ppa:chris-lea/node.js
sudo apt-get update
sudo apt-get install nodejs npm
安装成功后就可以使用npm了。 这里是 node.js的模块库:https://www.npmjs.org/ 想安装什么模块就在这里找吧。
推荐必安的几个包
其它的先别管,先装了这几个做Web开发最有用的包。我会在下一篇文章内详细地介绍它们
sudo npm install express -g
sudo npm install jade -g
sudo npm install body-parser -g
sudo npm install moment -g
sudo npm install express -g
sudo npm install bower -g
sudo npm install mongooes -g
sudo npm install grunt -g
sudo npm install less-middleware -g
sudo npm install nunit -g
开发环境
我在Ubuntu 也是菜鸟一名,对于node.js更是小白,于是google了一下看看大家都在用什么来开发 node.js. 很多人推荐使用sublime作为开发工具,由于长期使用VS.net个人感觉sublime非常的不好用,虽说他的插件极多但要配一个Debug
环境就是一件痛苦的事。最后还是选了WebStorm,这个工具是一个用java开发的集成IDE对node.js, less的支持非常好。WebStorm 自带的javascript 分析做得比VS.NET的要好多了,还可以分析出javascript文件的类结构树!(VS.NET至今一至都没有的功能). 到 http://www.jetbrains.com/webstorm/ 下载到本地解开包就可以用了,没有什么特别的安装过程,唯一感觉坑爹的就是要用命令行启动webstorm。
sudo sh /[webstorm安装目录]/bin/webstore.sh
Webstorm可以直接创建一个Node express的网站模板:

WebStorm可以带有很多插件库

WebStorm的调试器也很不错,与VS.net这种顶级IDE相比也毫不逊色。有一点小小的优点就是在这里你很容易就会完全使用TTD,每个文件都可以轻易地运行或是调试的(这就是javascript的好处之一),测试文件也不会被编译到项目内,这样一来测试就非常容易做也非常容易管理。

对于使用过VS.NET做前端的朋友可能都会觉得VS.NET的javascript 编辑很坑爹,对javascript类和方法的detect,outline等这些重要功能与C#编辑器相比就是粗制滥造!当我们的类一多,类浏览器的重要性就尤为突出,现在在WebStorm中构造你项目的类结构时就会大大不同了!
js类浏览器

js方法关系Detection

这些小功能确实是很赞,很实用。在实际开发中是很给力的。
小结
对开发环境的搭建与IDE环境的简单介绍就到这,如果有朋友发现比WebStorm更好用的IDE for node.js 的也请不吝给我留言。
在接下来的文章中我会一步一步地介绍更多与node相关的内容。
新的旅程:NodeJS - 环境篇的更多相关文章
- nodejs 基础篇整合
nodeJs 基础篇整合 最近有朋友也想学习nodeJs相关方面的知识,如果你是后端想接近前端,node作为一门跑在服务端的JS语言从这里入门再好不过了.如果你正好喜欢前端,想走的更高,走的更远.no ...
- Javascript的二进制数据处理学习 ——nodejs环境和浏览器环境分别分析
以前用JavaScript主要是处理常规的数字.字符串.数组对象等数据,基本没有试过用JavaScript处理二进制数据块,最近的项目中涉及到这方面的东西,就花一段时间学了下这方面的API,在此总结一 ...
- NodeJS项目迁移兼Ubuntu下NodeJS环境部署
前言 之前做的几个项目都托管在阿里云服务器,但是最近要到期了.想着到底要不要续期,毕竟100/月.后面看着阿里云有个活动,800/三年.果断买下.环境部署折腾了一天,其中也遇到几个坑. 目录 一.安装 ...
- 在阿里云 ECS 搭建 nginx https nodejs 环境(二、https)
在阿里云 ECS 搭建 nginx https nodejs 环境(二) 这次主要内容是 如何在 ubuntu 的nginx 下配置 二级域名. 一. 域名解析 首先你需要去到你的 域名服务商那边 进 ...
- nodejs环境 + 入门 + 博客搭建
NodeJS:NodeJS是一个使用了Google高性能V8 引擎 的服务器端JavaScript实现.它提供了一个(几乎)完全非阻塞I/O栈,与JavaScript提供的闭包和匿名函数相结合,使之成 ...
- 阿里云服务器(ECS)从购买到配置NodeJS环境
本人入门级前端,对服务器不熟悉,这是自己摸索的过程,可能会有错误! 1.购买 阿里云服务器有个活动是新用户前六个月可以免费试用,但是每天早上发放一定的名额,但为了方便,我买了18RMB的捆绑套餐,也是 ...
- linux -- ubuntu搭建nodejs环境
需求:在web端做一个实时性功能比较强的模块, 客户端:用websocket 服务端:node.js node.js介绍:node.js天生就是一个高效的服务端语言,可以直接使用 javascript ...
- ElementUI入门和NodeJS环境搭建
1. ElementUI简介 我们学习VUE,知道它的核心思想式组件和数据驱动,但是每一个组件都需要自己编写模板,样式,添加事件,数据等是非常麻烦的, 所以饿了吗推出了基于VUE2.0的组件库,它 ...
- 运用NodeJs环境并依赖第三方库,框架等实现网站前后端分离报错问题及处理方法
运用NodeJs环境并依赖第三方库,框架等实现网站前后端分离报错问题及处理方法 问题一: SyntaxError: missing ) after argument list in .....\vie ...
随机推荐
- cisco ASA ios升级或恢复
cisco ASA ios升级或恢复 一.升级前准备工作 1.准备好所要升级的IOS文件及对应的ASDM文件 2.在一台电脑上架设好tftp,设置好目录,与防火墙进行连接(假设电脑IP为192.168 ...
- python 多进程和多线程的区别
了解线程和进程 进程 程序:磁盘上的可执行二进制文件,并无运行状态. 进程:就是一个正在运行的任务实例(存活在内存里). 获取当前电脑的CPU核心数: pip install psutil >& ...
- python下以api形式调用tesseract识别图片验证码
一.背景 之前在博文中介绍在python中如何调用tesseract ocr引擎,当时主要介绍了shell模式,shell模式需要安装tesseract程序,并且效率相对略低. 今天介绍api形式的调 ...
- route命令详解与使用实例 ,同时访问内外网
route命令详解与使用实例 2011-10-18 12:19:41| 分类: 其他 | 标签:route |字号 订阅 1. 使用背景 需要接入两个网络,一个是部署环境所在内 ...
- 4星|《行为设计学:掌控关键决策》:影响决策质量的四大思维陷阱及WRAP应对法
行为设计学:掌控关键决策 两位作者认为,有四大思维陷阱让人做出错误的决策:思维狭隘.证实倾向.短期情绪.过度自信.两位作者提出WRAP决策流程来应对:Widen your options(拓宽选择空间 ...
- 用JS制作《飞机大作战》游戏_第1讲(素材查找和界面框架搭建)-陈远波
一.查找素材: 二.分析游戏界面框架: 登录界面.游戏界面.暂停游戏界面.玩家死亡后弹出界面:并对应的界面包含什么元素: 三.分别搭建以上四个界面: 1.登录界面与游戏界面框架(隐藏游戏界面,四个界面 ...
- cocos2d-x2.2.3学习
cocos2d-x2.2.3抛弃了原先的vs模板,改为python创建项目,详细什么原因我不是非常清楚啊,可能更方便些吧. 毕竟用pythone能够一下子创建很多不同平台的项目,让项目移植更方便些.可 ...
- linux问题整理
linux常用命令 //1.Linux如何查询进程?杀死一个进程? //2.文件权限,改变权限命令 //3.Linux中查看服务的命令 //4.linux查看内存 //5.查看磁盘空间的命令,查看文件 ...
- js之上传文件多图片预览
多图片上传预览功能也是现在非常常用的 下面是html代码: <html xmlns="http://www.w3.org/1999/xhtml"> <head&g ...
- CentOS7服务器配置网络
Centos7最小化安装 [root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-enp5s0f0编辑如下:TYPE=Ethernet ...