清明在石门休了八天假,一眨眼,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的更多相关文章

  1. 好程序员分享Web前端面试题汇总JS篇之跨域问题

    为什么80%的码农都做不了架构师?>>>   好程序员分享Web前端面试题汇总JS篇之跨域问题,接着上一篇文章我们继续来探讨web前端面试必备面试题. 跨域解决方案 1. 通过jso ...

  2. 这个程序员有点牛,现场直接用JS写了个飞机游戏,半小时吸粉三千

    程序员昨晚在b站直播的时用JavaScript代码写了一个飞机大战游戏,半小时不到粉丝关注就上千了. 今日就拿出来跟大家分享一下,对许多大佬来说做这个特效也不是很难,但是对于刚开始学习前端这方面还是有 ...

  3. [翻译]成为顶尖程序员应当学什么?Python、C还是Ruby?

    原文地址(墙外):https://medium.com/life-tips/should-you-learn-python-c-or-ruby-to-be-a-top-coder-infographi ...

  4. C语言过时了?为什么还要推荐每一位程序员都来学一下C语言?

    互联网蓬勃发展的时代,有一类人做出了巨大的贡献,这一群人被大家称之为程序员,怎样才能成为一名优秀的程序员呢,为什么每一个程序员都需要学习C语言呢? 就让我来跟大家分享分享:   在学习C/C++或者想 ...

  5. Java程序员必学知识点

    JVM无论什么级别的Java从业者,JVM都是进阶时必须迈过的坎.不管是工作还是面试中,JVM都是必考题.如果不懂JVM的话,薪酬会非常吃亏(近70%的面试者挂在JVM上了) 详细介绍了JVM有关于线 ...

  6. 资深程序员:学Python我推荐你用这几款编辑器

    Python使用什么编辑比较好,Python编辑器推荐 各位 Pythoner 好啊!在这个烦躁的时代,相聚就是缘分,很高兴各位 Pythoner 能相聚于此,希望接下来的路,我们一起走下去,使用 P ...

  7. C++ 虚函数简介!程序员必学知识,掌握编程从对象开始!

    本文将简单探究一下 c++ 中的虚函数实现机制.主要基于 vs2013 生成的 32 位代码进行研究,相信其它编译器(比如, gcc )的实现大同小异. 先从对象大小开始 假设我们有如下代码,假设 i ...

  8. 新一代Java程序员必学的Docker容器化技术基础篇

    Docker概述 **本人博客网站 **IT小神 www.itxiaoshen.com Docker文档官网 Docker是一个用于开发.发布和运行应用程序的开放平台.Docker使您能够将应用程序与 ...

  9. PHP高级程序员必学

    业务增长,给你的网站带来用户和流量,那随之机器负载就上去了,要不要做监控?要不要做负载均衡?用户复杂了,要不要做多终端兼容?要不要做CDN?数据量大了,要不要做分布?垂直分还是横向分?系统瓶颈在哪里? ...

随机推荐

  1. linux 下rabbitmq 安装

    准备工作: erlang环境  otp_src_19.0.tar.gz rabbitmq   abbitmq-server-generic-unix-3.6.5.tar.xz # yum -y ins ...

  2. Cocos2d-x中的CC_CALLBACK_X详解

    Cocos2d-x 3.x版本用CC_CALLBACK_0,CC_CALLBACK_1,CC_CALLBACK_2和CC_CALLBACK_3的宏来定义回调方法类的. 3.x版本的例子: child- ...

  3. String和intern()浅析

    String a = new String("aa"),代表在堆内存中,创建了一个字符串对象,变量a指向该对象,而该对象又指向在常量池中的字符串常量.而String a = &qu ...

  4. WeMall微信商城源码插件会员卡代码详情

    WeMall微信商城源码插件会员卡代码是用于商业推广的比较有效的方式,分享了部分比较重要的代码,供技术员学习参考 Index_index.html <html> <head> ...

  5. 1601: [Usaco2008 Oct]灌水

    1601: [Usaco2008 Oct]灌水 Time Limit: 5 Sec  Memory Limit: 162 MB Submit: 1342  Solved: 881 [Submit][S ...

  6. Spring IOC容器中Bean的生命周期

    1.IOC容器中Bean的生命周期 构造器函数 设置属性 初始化函数(在Bean配置中 init-method) 使用Bean 结束时关闭容器(在Bean中配置destroy-method) 2.Be ...

  7. 关于wxpython多线程研究包括(import Publisher错误研究)

    作为一个自动化测试人员,开发基本的应用桌面程序是必须的!最近在研究wxpython相关知识,目前看到多线程一块,发现官方文档介绍说:"在线程中不能修改修改窗口属性!",但是实际情况 ...

  8. ZooKeeper的简单理解

    1 ZooKeeper的一致性特点 概念 描述 备注 顺序一致性 以ZXID来保证事务的顺序性 原子性 以ZAB保证原子操作,要么成功,要么失败 单一视图 无论客户端从哪个服务器获取到关于应用的数据都 ...

  9. Knockoutjs : Unable to process binding "value:

    刚刚自学knockoutjs,老是碰到稀奇古怪的问题. 在自学knockout.js的时候经常遇到 Unable to process binding "value:的问题.目前总结了以下几 ...

  10. 【VB超简单入门】五、基本输出输入

    之前讲了VB IDE的基本操作和概念,接下来要开始将VB语言的编程了. 程序最重要的部分是输出和输入,输入数据,经过计算机处理,再输出结果.本文将介绍两种最基本的输出输入方法,分别是Print.Msg ...