crossplatform---Nodejs in Visual Studio Code 02.学习Nodejs
1.开始
源码下载:https://github.com/sayar/NodeMVA
在线视频:https://mva.microsoft.com/en-US/training-courses/using-node-js-with-visual-studio-code-13920
2.事件驱动编程语言Nodejs
阻塞与非阻塞(Blocking I/O and Non Blocking I/O)
Blocking I/O
1
2
3
4
|
var fs = require( 'fs' ); var contents = fs.readFileSync( 'package.json' ).toString(); console.log(contents); |
Non Blocking I/O
1
2
3
4
5
|
var fs = require( 'fs' ); fs.readFile( 'package.json' , function (err, buf) { console.log(buf.toString()); }); |
Nodejs与C#相反,readFileSync表示阻塞线程,而readFile不阻塞线程异步执行方法,调用完成后执行callback方法。
注:在c#中同步方法一般为object.action,同步方法会阻塞线程等待耗时操作执行完成,异步方法为object.actionAsyc,异步方法经常有个异步事件可以注册待异步方法执行结束后调用。
3.Hello World
打开源码文件夹01_HelloWorld,包含两个文件app.js和package.json
app.js
1
|
console.log( 'Hello world' ); //在控制台中输出Hello World , 令人熟悉的console类 |
package.json
1
2
3
4
5
6
7
8
9
10
|
{ "name" : "_01_HelloWorld" , "version" : "0.0.0" , "description" : "Hello World" , "main" : "app.js" , "author" : { "name" : "Rami Sayar" , "email" : "" } } |
打开CMD执行命令node app可以看到执行结果Hello World。
1
2
3
|
$ cd 01_HelloWorld $ node app Hello World |
4.FileIO
打开源码文件夹03_FILEIO
app.js
1
2
3
4
5
6
7
8
9
10
|
var fs = require( 'fs' ); //阻塞I/O toString 用起来很顺手,比学C#简单多了 var contents = fs.readFileSync( 'package.json' ).toString(); console.log(contents); //非阻塞I/O fs.readFile( 'package.json' , function (err, buf) { console.log(buf.toString()); }); |
5.Streams
打开源码文件夹06_Streams
app.js
1
2
3
4
5
6
|
var fs = require( "fs" ); // Read File fs.createReadStream( "package.json" ) // Write File .pipe(fs.createWriteStream( "out-package.json" )); |
6.HelloWorldHttp
打开源码文件夹02_HelloWorldHttp
app.js
1
2
3
4
5
6
7
8
9
10
|
var http = require( 'http' ); //处理http请求,返回200ok hello world var server = http.createServer( function (request, response) { response.writeHead(200, { "Content-Type" : "text/plain" }); response.end( "Hello World\n" ); }); //侦听7000端口 server.listen(7000); |
7.HelloWorldTCP
打开源码文件夹05_HelloWorldTCP
server.js
1
2
3
4
5
6
7
8
9
|
var net = require( 'net' ); // The handler argument is automatically set as a listener for the 'connection' event var server = net.createServer( function (socket) { console.log( "Connection from " + socket.remoteAddress); socket.end( "Hello World\n" ); }); server.listen(7000, "127.0.0.1" ); |
client.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
var net = require( 'net' ); var client = new net.Socket(); client.connect(7000, "127.0.0.1" ); client.on( 'data' , function (data) { console.log( 'Data: ' + data); client.destroy(); }); // Add a 'close' event handler for the client socket client.on( 'close' , function () { console.log( 'Connection closed' ); }); |
打开两个CMD窗口,这两个窗口将会互相通讯。
1
2
|
$ cd 05_HelloWorldTCP $ node server |
1
2
|
$ cd 05_HelloWorldTCP $ node client |
8.Requests
打开源码文件夹10_Requests
app.js
1
2
3
4
5
|
var request = require( "request" ); request( "http://www.bing.com" , function (error, response, body) { console.log(body); }); |
http://www.cnblogs.com/mengkzhaoyun/p/5355186.html
crossplatform---Nodejs in Visual Studio Code 02.学习Nodejs的更多相关文章
- Nodejs in Visual Studio Code 02.学习Nodejs
1.开始 源码下载:https://github.com/sayar/NodeMVA 在线视频:https://mva.microsoft.com/en-US/training-courses/usi ...
- Nodejs in Visual Studio Code 07.学习Oracle
1.开始 Node.js:https://nodejs.org OracleDB: https://github.com/oracle/node-oracledb/blob/master/INSTAL ...
- Nodejs in Visual Studio Code 03.学习Express
1.开始 下载源码:https://github.com/sayar/NodeMVA Express组件:npm install express -g(全局安装) 2.ExpressRest 打开目录 ...
- Nodejs in Visual Studio Code 14.IISNode与IIS7.x
1.开始 部署IISNode环境请参考:Nodejs in Visual Studio Code 08.IIS 部署Nodejs程序请参考:Nodejs in Visual Studio Code 1 ...
- Nodejs in Visual Studio Code 11.前端工程优化
1.开始 随着互联网技术的发展,企业应用里到处都是B/S设计,我有幸经历了很多项目有Asp.Net的,有Html/js的,有Silverlight的,有Flex的.很遗憾这些项目很少关注前端优化的问题 ...
- Nodejs in Visual Studio Code 10.IISNode
1.开始 Nodejs in Visual Studio Code 08.IIS : http://www.cnblogs.com/mengkzhaoyun/p/5410185.html 参考此篇内容 ...
- Nodejs in Visual Studio Code 01.简单介绍Nodejs
1.开始 作者自己:开发人员,Asp.Net , html / js , restful , memcached , oracle ,windows , iis 目标读者:供自己以后回顾 2.我看No ...
- Nodejs in Visual Studio Code 04.Swig模版
1.开始 设置Node_Global:npm config set prefix "C:\Program Files\nodejs" Express组件:npm install e ...
- crossplatform---Nodejs in Visual Studio Code 07.学习Oracle
1.开始 Node.js:https://nodejs.org OracleDB: https://github.com/oracle/node-oracledb/blob/master/INSTAL ...
随机推荐
- 《Unix编程艺术》读书笔记(1)
<Unix编程艺术>读书笔记(1) 这两天開始阅读该书,以下是自己的体会,以及原文的摘录,尽管有些东西还无法全然吃透. 写优雅的代码来提高软件系统的透明性:(P134) Elegance ...
- 数学分析告诉偶们什么(vamei)
1]人生的痛苦在于追求错误的东西.所谓追求错误的东西,就是你在无限趋近于它的时候,才猛然发现,你和它是不连续的. 2]人和人就像数轴上的有理数点,彼此能够靠得非常近非常近,但你们之间始终存在隔阂. 3 ...
- 终端中经常使用的shell 命令
Mac 在shell命令终端中,Ctrl+n相当于方向向下的方向键,Ctrl+p相当于方向向上的方向键. 在命令终端中通过它们或者方向键能够实现对历史命令的高速查找.这也是高速输入命令的技巧. 在命令 ...
- windows 空闲超时 非管理员如何破解
windows 空闲超时 非管理员如何破解
- Android.app.SuperNotCalledException错误
- ::): FATAL EXCEPTION: main - ::): android.app.SuperNotCalledException: Activity {com.solar/com.sol ...
- Python 网络爬虫与信息获取(一)—— requests 库的网络爬虫
1. 安装与测试 进入 cmd(以管理员权限),使用 pip 工具,pip install requests 进行安装: 基本用法: >> import requests >> ...
- JavaScript学习笔记八
本文依据慕课网课程<JavaScript进阶>学习整理 第8章 浏览器对象 8-1 window对象 window对象是BOM的核心.window对象指当前的浏览器窗体. wind ...
- jQuery Mobile手机网站案例
jQuery Mobile手机网站案例 一.总结 一句话总结:jQuery Mobile是纯手机框架,和amazeui和bootstrap都可以做手机网站. 1.另一款文本编辑器? jd编辑器 二.j ...
- 三种方式使得iOS应用能够在后台进行数据更新和下载
三种方式使得iOS程序即使在关闭或崩溃的情况下也能够在后台持续进行一些任务,比如更新程序界面快照,下载文件等.这三个方法分别是 Background Fetch,Remote Notification ...
- BZOJ 1509 逃学的小孩 - 树型dp
传送门 题目大意: 在一棵树中, 每条边都有一个长度值, 现要求在树中选择 3 个点 X.Y. Z , 满足 X 到 Y 的距离不大于 X 到 Z 的距离, 且 X 到 Y 的距离与 Y 到 Z 的距 ...