.NET程序员也学Node.js——初识Node.js
清明在石门休了八天假,一眨眼,4月又到中旬了...看到.NET在天朝彻底沦陷而又无能为力,我开始尝试去学习一些新的东西来充实自己,我自然是打死不会去学java的,没有为什么,于是乎,最近开始学习一些前端的开发技术,就让学习笔记来记录一下我的学习历程并同大家一起分享吧!
申明:我只是业余学着好玩的,顺便扩展一下视野,各位广大.NET同行不要被我带沟里去了,当然如果你想从事移动前端或者全栈开发的话还是有必要学习一下的。
Node.js简介
Node.js 的推出,不仅从工程化的角度自动化掉更多琐碎费时的工作,更打破了前端后端的语言边界,让 JavaScript 流畅的运行在服务器端。
为什么要学习Node.js?
Node.js现在非常火而且很强,从2009年出现至今,已经风靡全球,微软的VS也已经将其集成进来了,我们知道微软总是喜欢将一些它觉得比较好的东西集成尽量。
什么是Node.js?
Node.js 是一个由C++编写的基于 Chrome V8 引擎的 JavaScript 运行环境。
速度非常快,性能非常好,Node对一些特殊用例进行了优化,提供了替代的API,使得V8在非浏览器环境下运行得更好。
Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。
Node.js 的包管理器 npm,是全球最大的开源库生态系统。
官方网站:https://nodejs.org
中文网站:http://nodejs.cn
目前最新版本:Node.js
v6.10.1
Node.js的版本号,偶数为稳定版,奇数为非稳定版
Node.js发展历史
- 2009年2月,Ryan Dahl在博客上宣布准备基于V8创建一个轻量级的Web服务器并提供一套库。
- 2009年5月,Ryan Dahl在GitHub上发布了最初版本的部分Node.js包,随后几个月里,有人开始使用Node.js开发应用。
- 2009年11月和2010年4月,两届JSConf大会都安排了Node.js的讲座。
- 2010年年底,Node.js获得云计算服务商Joyent资助,创始人Ryan
Dahl加入Joyent全职负责Node.js的发展。 - 2011年7月,Node.js在微软的支持下发布Windows版本。
- Visual Studio
2013+支持Node开发 - 提供了各种模版和智能提示,并且支持开发调试。

最新消息:Node.js之父Ryan Dahl退位, Isaac Schlueter接手Node.js。
Node.js特点
JavaScript与非阻塞Socket结合,
它与其他语言的一个明细区别就是处理I/O。它永远不允许用户锁上程序,它要求用户不断的处理新事务,因此它很适用于网络编程,在服务器上要与很多客户端通信,必须处理网络连接,而Node鼓励人们用非阻塞的模式,正是由于这个特性,你会发现Node在开发服务器上比传统编程语言更加方便。
Windows开发环境
由于VS2017中已经集成了Node.js,我这里就直接安装VS2017了,我们在安装VS2017的时候切忌全选,因为那样很费硬盘空间,安装很费时间,我安装VS一直都是选自定义安装。
VS2015(必须是Update 3 RTM或者更高版本),要么就用VS2013,然后后面就用NTVS 1.0 VS 2013.msi,这个Update 3 RTM更新包太大了,所以我直接选择安装VS2017了,速度还快些。
node-v6.10.1-x64.msi官方安装SDK
NTVS 1.2 VS 2015
Express框架:类似于ASP.NET MVC
Jade模版引擎:类似于Razor引擎,视图
Stylus样式框架:CSS于处理器,CSS框架
命令行开发
UI开发工具
1. 下载SDK:node-v6.10.1-x64.msi
进入官网:https://nodejs.org,下载SDK:node-v6.10.1-x64.msi,由于我的电脑是win10 64bit的系统,所以就下载node-v6.10.1-x64.msi

2.安装Git-1.9.4-preview20140815.exe,安装方法很简单,不断点击下一步就可以了,安装完成之后,打开Git Bash

输入$ node –v 查看node的版本号,输入$ npm –v 查看npm的版本,如果看到如下图所示,说明安装成功了。

在CMD中,我们也可以调用node,这表示我们已经在环境变量中配置好了。

3.安装Node.js Tools 1.2 for Visual Studio 2015
下载地址:Download Node.js Tools 1.2
http://www.cr173.com/soft/73135.html
安装VS2017,需要注意的是:大家在安装VS2017的时候不要选择全部安装,要选择自定义安装,这样可以节省大量的硬盘空间,而且安装速度也非常快,我们应该按需安装。

打开VS2017,新建项目


这视图引擎更名了,之前后缀名叫做jade的,现在变成pug了。
npm 是 node packaged modules 的简称,它的作用是基于 node.js 管理扩展包之间的依赖关系。
因为我是微软粉,所以就只介绍了windows上面安装node.js,大家可以自己尝试去linux和mac下面安装node.js
项目可以直接运行的,修改index.pug文件如下:

然后按F5运行,会自动打开一个node.exe程序和一个Web浏览器界面

.NET程序员也学Node.js——初识Node.js的更多相关文章
- 好程序员分享Web前端面试题汇总JS篇之跨域问题
为什么80%的码农都做不了架构师?>>> 好程序员分享Web前端面试题汇总JS篇之跨域问题,接着上一篇文章我们继续来探讨web前端面试必备面试题. 跨域解决方案 1. 通过jso ...
- 这个程序员有点牛,现场直接用JS写了个飞机游戏,半小时吸粉三千
程序员昨晚在b站直播的时用JavaScript代码写了一个飞机大战游戏,半小时不到粉丝关注就上千了. 今日就拿出来跟大家分享一下,对许多大佬来说做这个特效也不是很难,但是对于刚开始学习前端这方面还是有 ...
- [翻译]成为顶尖程序员应当学什么?Python、C还是Ruby?
原文地址(墙外):https://medium.com/life-tips/should-you-learn-python-c-or-ruby-to-be-a-top-coder-infographi ...
- C语言过时了?为什么还要推荐每一位程序员都来学一下C语言?
互联网蓬勃发展的时代,有一类人做出了巨大的贡献,这一群人被大家称之为程序员,怎样才能成为一名优秀的程序员呢,为什么每一个程序员都需要学习C语言呢? 就让我来跟大家分享分享: 在学习C/C++或者想 ...
- Java程序员必学知识点
JVM无论什么级别的Java从业者,JVM都是进阶时必须迈过的坎.不管是工作还是面试中,JVM都是必考题.如果不懂JVM的话,薪酬会非常吃亏(近70%的面试者挂在JVM上了) 详细介绍了JVM有关于线 ...
- 资深程序员:学Python我推荐你用这几款编辑器
Python使用什么编辑比较好,Python编辑器推荐 各位 Pythoner 好啊!在这个烦躁的时代,相聚就是缘分,很高兴各位 Pythoner 能相聚于此,希望接下来的路,我们一起走下去,使用 P ...
- C++ 虚函数简介!程序员必学知识,掌握编程从对象开始!
本文将简单探究一下 c++ 中的虚函数实现机制.主要基于 vs2013 生成的 32 位代码进行研究,相信其它编译器(比如, gcc )的实现大同小异. 先从对象大小开始 假设我们有如下代码,假设 i ...
- 新一代Java程序员必学的Docker容器化技术基础篇
Docker概述 **本人博客网站 **IT小神 www.itxiaoshen.com Docker文档官网 Docker是一个用于开发.发布和运行应用程序的开放平台.Docker使您能够将应用程序与 ...
- PHP高级程序员必学
业务增长,给你的网站带来用户和流量,那随之机器负载就上去了,要不要做监控?要不要做负载均衡?用户复杂了,要不要做多终端兼容?要不要做CDN?数据量大了,要不要做分布?垂直分还是横向分?系统瓶颈在哪里? ...
随机推荐
- 对于block的理解,block的面试题
1.block跟swift中的闭包(closure)基本一样,都常用于值的回调,特别是在多线程的网络请求回调中,使用起来极为方便. 2.block的开头是"^",接着是由小括号所报 ...
- [bzoj3196]Tyvj 1730 二逼平衡树——线段树套平衡树
题目 Description 您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作: 1.查询k在区间内的排名 2.查询区间内排名为k的值 3.修改某一位值上的数值 4.查 ...
- Docker存储驱动之OverlayFS简介
简介 OverlayFS是一种和AUFS很类似的文件系统,与AUFS相比,OverlayFS有以下特性: 1) 更简单地设计: 2) 从3.18开始,就进入了Linux内核主线: 3) 可能更快一些. ...
- Eclipse多个console的使用
我们在使用Eclipse开发服务器端和客户端时,经常需要同时运行服务器端和客户端,以便联调运行情况.而我之前一般有两种做法: 使用Java的命令行模式运行,但这种做法通常比较麻烦,因为要使用大串的cl ...
- redux-form的学习笔记二--实现表单的同步验证
(注:这篇博客参考自redux-form的官方英文文档)左转http://redux-form.com/6.5.0/examples/syncValidation/ 在这篇博客里,我将用redux-f ...
- Binary Search Tree Iterator leetcode
Implement an iterator over a binary search tree (BST). Your iterator will be initialized with the ro ...
- $_FILES详解
<form enctype="multipart/form-data" action="upload.php" method="post&quo ...
- 纯HTML自动刷新页面或重定向
refresh 属性值 -- 刷新与跳转(重定向)页面 refresh出现在http-equiv属性中,使用content属性表示刷新或跳转的开始时间与跳转的网址 refresh示例一:5秒之后刷 ...
- Java完成简单猜数字游戏v2.0
猜数字游戏v2.0 优化了获取随机数.输入数据超出边界值的代码,并增加了异常处理,能够在玩家输入错误数据错误时给出可靠指引,希望对和我一样的新人有帮助, 最后希望有大神愿意帮我解决代码优化的问题,谢谢 ...
- AutoIt 脚本小试——刷网易云音乐歌单
AutoIt 确实是个很强大的脚本工具. 如果早知道有这个,当初是怎么都不会去学易语言的 (๑•̀ω•́๑) 这是个简单脚本 = ๛ก(ー̀ωー́ก) 用来增加歌单播放次数和个人的听歌量. 原理不过 ...