写出来的感觉

用ASP.NET
MVC好多年了,还记得那时候为MVC所倡导的”D奇骏Y”理念所感染,为Razor的简便而感动。随着MVC的多谋善算者反而让小编觉着就像慢慢地走入了微软构建的一种高技能的牢笼。
感觉MVC越来越也让人感到笨重了就如失去了之前的灵敏,有时候更有点像在用JAVA的感觉到。在MVC四中还看到了MS到场的成都百货上千非C#观念的东东,例如OWIN吧,小编认可是个好东西但却连连令人有一种不知到从哪儿拿来硬用C#写出来的感到。写个小小的的Web就要布局一大堆的东东,安装老半天的环境,忍受IIS那吃货漫长的起步时间…

乘胜近日Paypal和Netflix宣布 迁移到Node.js,
服务器端Javascript平台已经表达其自作者在公司天地的价值.
那对于Node来说是一小步,对于Javascript而言却是一大跨越啊! 来自.NET,
Java, PHP, Ruby on Rails和更加多技术世界的程序员,
全数游走于服务器端的编码者都会汇聚到这一个平台上. 作为像 Yahoo, 沃尔玛(Walmart),
和 Oracle 那样的大玩家入局,, Node
正在舍弃其直接就存在的不成熟和不稳定的坏名声.
在那篇小说中,小编会向你显得在Window环境下安装Node.js到底有多不难.
安装Node.js

前几日出于好奇拿起了Node.js,想看看那几个近年敬而远之的东东到底有何样决定的地点,
没悟出一下子就被她给迷惑住了!有几点是最引诱小编的:

让Node.js安装在Windows上正是细节壹桩. 到 Node.js
网址下载并运转”.msi”文件. 它将会把Node.js 和 NPM (Node包管理模块)安装上.
NPM 相当于用于.NET应用的 NuGet 包管理器.

  • 属性高,基于谷歌(Google) V八引擎开发,以非阻塞式线程模型为底蕴。(稍试了瞬间,页面输出的时光与IIS比较的话那正是火箭与乌龟在赛跑了)
  • 统统模块化开发,模块之间的重用率很高。
  • 简短而且第一方能源极其充分,很多MVC内的纷纭功用只须求装一三个模块就能一气呵成,内中还包涵了不少由MS本身支付的模块,如
    azure.
  • 基于javascript,
    那象征能够选择弱类型的语言开发能够省下许多在C#中过多的门类相关操作,而且可以轻易地做Ioc想想那是多爽的事。而且壹套代码写得好的话既能够运作于服务端也得以运用于客户端,那么对于客户端与服务端具有同等或看似事情处理逻辑的代码不就能够合为一体了吧?
  • 视图引擎众多,能够按自个儿的喜好不难地转移(感觉还是jade最为简结)

运行Node.js

自个儿在Window下安装过node.js的运转条件,但要命坑爹NPM常常出标题或许是权力的题材吧,由此可见用NPM安装很多常用包时都会出错。
但在Ubuntu下跑就从不那类难题产生,因为能够用sudo为NPM授权。在此间就享受一入手无寸铁NodeJS开发环境的一点小经验。

在Windows上运维Node.js同样很简单. 打开 PowerShell 并输入 “node -v”
确定保障Node在您的环境变量,并查看你正在运作的Node.js的版本. 同样的输入 “npm
-v” 来查看你安装的Node包管理工科具的版本. 你弄好了没? Ok,
让大家来发轫大快朵颐乐趣吧!!

安装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

 

开辟记事本程序,我们将创设大家的率先个Node.js应用.
把上面包车型地铁代码复制到记事本程序中,使用其余公文名都能够,比如”example.js”,
并把它保存到你指望的文本夹中:
 

支付环境

小编在Ubuntu
也是菜鸟一名,对于node.js更是小白,于是google了弹指间探访我们都在用什么来支付
node.js.
很四个人举荐应用sublime作为开发工具,由于时代久远接纳VS.net个人感觉sublime非凡的倒霉用,虽说他的插件极多但要配1个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能够直接成立1个Node
express的网址模板:

 图片 1

 

WebStorm能够包罗很多插件库

图片 2

 

WebStorm的调节和测试器也很科学,与VS.net那种超级IDE比较也一点也不差。有1些细微的长处正是在那边你很不难就会完全使用TTD,每一种文件都足以轻易地运作可能调节和测试的(那正是javascript的利益之一),测试文件也不会被编写翻译到品种内,那样一来测试就卓殊不难做也非凡不难管理。

图片 3

 

对于使用过VS.NET做前端的情侣只怕都会以为VS.NET的javascript
编辑很坑爹,对javascript类和章程的detect,outline等这一个重点作用与C#编辑器相比正是含含糊糊!当大家的类1多,类浏览器的基本点就一发出色,将来在WebStorm中结构你项指标类组织时就会大大不一样了!

 

js类浏览器

图片 4

js方法关系Detection

图片 5

 

那些小效用实在是相当赞,很实用。在骨子里支出中是很给力的。

 

var http = require('http');
http.createServer(function (req, res) {
 res.writeHead(200, {'Content-Type': 'text/plain'});
 res.end('Hello Node');
}).listen(1337, '127.0.0.1');

小结

对开发环境的搭建与IDE环境的简约介绍就到那,如若有对象发现比WebStorm更加好用的IDE
for node.js 的也请不吝给本身留言。

在接下去的稿子中本人会一步一步地介绍越多与node相关的内容。

 

 

 

今日再次回到 PowerShell.
将路径变更到你的”example.js”文件存放的位置,并运营Node!
 

cd C:\Websites\NodeTest
node example.js

翻开您的网页浏览器,导航输入 http://127.0.0.1:1337. 起功效了么?
恭喜你运维了您的率先个Node.js应用!

提供网址服务

您会担忧小编会只留下2个 “Hello World” 示例就收工了?
倘使我们领略什么样去运营3个HTML文件,那将会进一步的美好. 添加三个”index.html” 文件,里面能够是其余HTML内容. 将会像那样:
 

<html>
 <head>
  <title>Sample Node.js Website</title>
 </head>
 <body>
  <p>This is the home page for you Node.js website.</p>
 </body>
</html>

是时候运营应用了。创制四个足以叫任何名字的新文件,比如 “index.js”,
并把之类的js代码加到里面:
 

var http = require('http');
var fs = require('fs');

http.createServer(function(req, res){
  fs.readFile('index.html',function (err, data){
    res.writeHead(200, {
       'Content-Type': 'text/html',
       'Content-Length': data.length
      });
    res.write(data);
    res.end();
  });
}).listen(1337, '127.0.0.1');

政工在此处开端变得特别有意思了. 注意开始的地点多了一行 “require” .
你正在往你的应用中带领要求的依赖程序. 那像是C#实惠来调用依赖程序的
“using” 命名空间指令.

经过在PowerShell中输入: node index.js 来运营”index.js”(不要忘了打击
Ctrl-C来退出上三个Node应用的周转,或然在这一遍选拔三个新的端口号).
在你的浏览器中,导航到http://127.0.0.1:1337
,你就应有会看出您的HTML文件了. 你将恐怕在这一点成就上呼吸系统感染到有点感动,
但假诺您想我,就会对它发生局地错综复杂的感觉.
那还只是低级别的编制程序,假使笔者不得不去想念读取/流媒体文件,还有关于每一遍应该发送什么意况这几个标题标时候,世界高速就会变得抑郁重重.
向 ExpressJS道好吧!

行使Node包管理器

Node.js有1个重复让我们深感世界美好的搭档. ExpressJS
屏蔽掉了亟待在Node.js举行的老生常谈,让您能够一向进去web开发.
它是一个可以让你营造单页,多页还有插花类型web应用程序的web框架.
没有它你在 Node.js 领域是不会有盼头滴!

第2利用 NPM 来安装它.
为此,再二回打开PowerShell并切换来您的应用程序的路径. 将来输入: npm
install express. 它将会成立1个叫做 “node_modules” 来设置 ExpressJS.
从那么些角度上看,你的Node模块将会放到那里,有点像在.NET应用中的”bin”目录,
从此处您能够调用或许”require”你的信赖程序.
 
ExpressJS入门

近期自由创设二个新文件, 比如 “server.js”, 并把上边包车型大巴代码粘贴进去:
 

var express = require('express');

//CREATE APP
var app = express();

//LOCATION OF STATIC CONTENT IN YOUR FILESYSTEM
app.use(express.static(__dirname));

//PORT TO LISTEN TO
app.listen(1337);

那是在调用ExpressJS的看重性, 然后从它那里创立3个应用.
从此你可就牛逼大发了! 在此间,大家只是简短的提供静态文件服务.
“__dirname” 是来自ExpressJS的四个至极的变量,意思是根文件系统地方.
最终你告诉应用去侦听端口 13三7. 现行反革命您就有所了三个提供静态文件服务的
Node.js 站点了!
别的在增加产量部分HTML文件,1些放在子目录中,然后到http://127.0.0.1:1337
测试看看吧.

关于 IIS

在这么些示例中,
我平素都以在端口1337周转应用,而不是端口80.缘由是IIS已经侦听了80端口.
有过多的艺术能够使IIS 和 Node.js 和谐共存:

  •     IISNode:
    那是二个在你的IIS站点让Node.js像三个应用池这样运维的很聪明伶俐的症结,
    同在IIS中与运转PHP很像.
    事实上,Azure就是用这么些在其平台上运营Node.js的.
  •     WinServ: 它让 Node.js 像3个Windows服务那样运转.
    它事实上是对流行了 NSSM (Non-Sucking ServiceManager)的1个对Node.js友好的封装.
    一旦作为叁个劳动运维,你就足以应用IIS的应用请求路由(A福特ExplorerLacrosse)
    来代理向你的Node.js应用端口发起的请求.

关于 MS SQL

有那些为Node.js准备的 MS SQL 驱动程序, 有个别甚至是跨平台的.
有3个只能在Windows环境中运行的,是由Windows Azure宣布: Microsoft Driver
for Node.js for SQL Server. 而你能够像上面那样开首工作:
 

var sql = require('node-sqlserver');
var connStr = "Driver={SQL Server Native Client 11.0};Server=(local);Database=AdventureWorks2012;Trusted_Connection={Yes}";
var cmd = "SELECT TOP 10 FirstName, LastName FROM Person.Person";

sql.open(connStr, function (err, conn) {
  conn.queryRaw(cmd , function (err, results) {
    for (var i = 0; i < results.rows.length; i++) {
      console.log(
          "FirstName: " + results.rows[i][0]
       + " LastName: " + results.rows[i][1]);
    }
  });
});

总结

那么些都只是轻描淡写! 与 ExpressJS携手,
你将能够创制带有路由、视图、布局、服务还有越多组件的通通成熟的MVC应用程序.
同样,除非你必要去集成壹些现有的Microsoft应用程序或许MS SQL数据库,
MongoDB 在您创立2个Node堆栈式是能支持你从SQL中解放的好伙伴.
最终,你能够应用MEAN创立1个MEAN Javascript全栈应用, 包蕴有MongoDB,
ExpressJS, AngularJS, 和Node.js. 未来供销合作社早就向Node.js靠拢了,
对您而言同样是还是不是时候来救助行动了吗?

你或者感兴趣的稿子: