用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 - 环境篇的更多相关文章

  1. nodejs 基础篇整合

    nodeJs 基础篇整合 最近有朋友也想学习nodeJs相关方面的知识,如果你是后端想接近前端,node作为一门跑在服务端的JS语言从这里入门再好不过了.如果你正好喜欢前端,想走的更高,走的更远.no ...

  2. Javascript的二进制数据处理学习 ——nodejs环境和浏览器环境分别分析

    以前用JavaScript主要是处理常规的数字.字符串.数组对象等数据,基本没有试过用JavaScript处理二进制数据块,最近的项目中涉及到这方面的东西,就花一段时间学了下这方面的API,在此总结一 ...

  3. NodeJS项目迁移兼Ubuntu下NodeJS环境部署

    前言 之前做的几个项目都托管在阿里云服务器,但是最近要到期了.想着到底要不要续期,毕竟100/月.后面看着阿里云有个活动,800/三年.果断买下.环境部署折腾了一天,其中也遇到几个坑. 目录 一.安装 ...

  4. 在阿里云 ECS 搭建 nginx https nodejs 环境(二、https)

    在阿里云 ECS 搭建 nginx https nodejs 环境(二) 这次主要内容是 如何在 ubuntu 的nginx 下配置 二级域名. 一. 域名解析 首先你需要去到你的 域名服务商那边 进 ...

  5. nodejs环境 + 入门 + 博客搭建

    NodeJS:NodeJS是一个使用了Google高性能V8 引擎 的服务器端JavaScript实现.它提供了一个(几乎)完全非阻塞I/O栈,与JavaScript提供的闭包和匿名函数相结合,使之成 ...

  6. 阿里云服务器(ECS)从购买到配置NodeJS环境

    本人入门级前端,对服务器不熟悉,这是自己摸索的过程,可能会有错误! 1.购买 阿里云服务器有个活动是新用户前六个月可以免费试用,但是每天早上发放一定的名额,但为了方便,我买了18RMB的捆绑套餐,也是 ...

  7. linux -- ubuntu搭建nodejs环境

    需求:在web端做一个实时性功能比较强的模块, 客户端:用websocket 服务端:node.js node.js介绍:node.js天生就是一个高效的服务端语言,可以直接使用 javascript ...

  8. ElementUI入门和NodeJS环境搭建

    1. ElementUI简介 我们学习VUE,知道它的核心思想式组件和数据驱动,但是每一个组件都需要自己编写模板,样式,添加事件,数据等是非常麻烦的,   所以饿了吗推出了基于VUE2.0的组件库,它 ...

  9. 运用NodeJs环境并依赖第三方库,框架等实现网站前后端分离报错问题及处理方法

    运用NodeJs环境并依赖第三方库,框架等实现网站前后端分离报错问题及处理方法 问题一: SyntaxError: missing ) after argument list in .....\vie ...

随机推荐

  1. Oracle EBS OPM reshedule batch

    --reschedule_batch --created by jenrry DECLARE x_message_count NUMBER; x_message_list VARCHAR2 (2000 ...

  2. sql server 存储过程的学习

    存储过程学习笔记 存储过程就是一条或者多条sql语句的集合,为了实现特定任务,而将一些需要多次调用的固定操作语句编写成程序段,这些程序段存储在服务器上,有数据库服务器通过程序来调用.T_SQL:存储过 ...

  3. C#实现复制文件夹中文件到另一个文件夹的方法

    private void CopyDir(string srcPath, string aimPath) { try { // 检查目标目录是否以目录分割字符结束如果不是则添加 if (aimPath ...

  4. AD用户移除所属组

    AD用户移除所属组: $Membership = Get-ADPrincipalGroupMembership $Users $Membership.distinguishedName Remove- ...

  5. Hadoop 命令 && Web UI

    0. 说明 Hadoop 命令合集 && Web UI 1. HDFS 命令 [1.0 启动所有 && 关闭所有进程] 相当于启动 HDFS 和 YARN # 启动所有 ...

  6. pychram使用技巧

    1.代码添加断点 点击对应行代码,按ctrl+F8,即可添加断点 2.查看内置函数的源码 点击对应函数后按crtl+B

  7. beta冲刺————第一天(1/5)

    人员的再次分配: 调走人员:陈裕鹏(原来在本队伍主要进行文章推荐算法的设计) 调入人员:陈邡(原Dipper团队,负责游戏内容的策划案,以及做一些后端的探索工作.) 现队员工作划分: 王国华,吴君毅, ...

  8. 2-5 R语言基础 factor

    #因子:分类数据#有序和无序#整数向量+标签label#Male/Female#常用于lm(),glm() > x <- factor(c("female"," ...

  9. NOI 2018网络同步赛(游记?)

    刚中考完那段时间比较无聊,报名了一个同步赛,报完名才发现成绩单是要挂到网上的,而且因为报的早给了一个很靠前的考号...那布星啊,赶紧学点东西,于是在一周内学了网络流,Treap以及一些数论. Day1 ...

  10. Jquery分页组件

    最近工作不是很忙,所以就看看淘宝kissy分页组件源码,感觉代码也不怎么难 容易理解,所以就按照他们的思路自己重新理一遍,来加深自己对他们的理解,同时对他们的分页组件进行一些重构(因为他们分页是做好了 ...