用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. 大于2t的磁盘分区,并格式化ext4挂载

    1:MBR分区表:(MBR含义:主引导记录) 所支持的最大卷:2T (T; terabytes,1TB=1024GB) 对分区的设限:最多4个主分区或3个主分区加一个扩展分区. 2:GPT分区表:(G ...

  2. Angular-1.6 路由 简单使用

    index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...

  3. sysbench安装、使用、结果解读

    sysbench是一个模块化的.跨平台.多线程基准测试工具,主要用于评估测试各种不同系统参数下的数据库负载情况.目前sysbench代码托管在github上,项目地址:https://github.c ...

  4. 【转】Java学习---快速掌握RPC原理及实现

    [原文]https://www.toutiao.com/i6592365493435236872/ ​RPC概述 RPC(Remote Procedure Call)即远程过程调用,也就是说两台服务器 ...

  5. Resharper安装使用手册

    今天在博客园上看到一位大牛写了一遍关于.NET代码优化的文章,其中提到了Resharper这个工具,以前没使用过这个工具,突然想用这个工具来检查一下自己之前代码的规范程度,也是为了写出更规范的代码. ...

  6. 【Alpha 冲刺】 3/12

    今日任务总结 (未完成) 人员 今日原定任务 完成情况 遇到问题 贡献值 胡武成 完成API文档编写 已完成App端api,Web端api还在持续 时间紧 孙浩楷 理解掌握在线编辑插件使用 加深了对所 ...

  7. POJ 2049— Finding Nemo(三维BFS)10/200

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/u013497151/article/details/29562915 海底总动员.... 这个题開始 ...

  8. RMAN 备份数据库到DISK后进行数据恢复

    RMAN 备份数据库到DISK,然后进行数据恢复 一.rman备份 1. 全备脚本 vi bakup_level0.sql connect target / run { allocate channe ...

  9. Linq EF 添加数据执行事务处理

    在EF4.1的DBContext中实现事务处理(BeginTransaction)和直接执行SQL语句的示例 2012-12-12 10:39             5538人阅读          ...

  10. 抽象类、final关键字、多态

    1.1 抽象类 1.1.1 抽象类概念 C extends B,B extends A,在继承过程中,形成一个继承金字塔,位于金字塔底部的类越来越具体(强大),位于塔顶的越来越抽象(简单). 例如:人 ...