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 appHello 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/Ofs.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 Filefs.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 worldvar 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' eventvar 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 socketclient.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 ...
随机推荐
- jquery 多选框 checkbox 获取选中的框
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- C# datatable增加行(datarow)数据为另一个datatable中某行
两个表A和B,两表结构相同.现在需要将A表中部分行拷贝到B表中,直接用 DataTableB.rows.add(dataTableA.rows[0]) 这样的方法式会报"row已经属于A表& ...
- 使用Html5开发Android和iOS应用:HBuilder、Html5Plus、MUI
活动主题:五一巨献,问答有礼,105QB送给IT互联网界的劳动人民活动时间:4月30日晚上10点~5月2日晚上10点网址: http://ask.jiutianniao.com 2014年的时候,就 ...
- ORA-00907: 缺失右括号问题整理解决
ORA-00907: 缺失右括号 前言 近期在开发过程中使用oracle数据库,在程序中进行查询数据时遇到了"ORA-00907: 缺失右括号"的问题.可是假设直接把sql语句直接 ...
- QT代理Delegates使用实例(三种代理控件)
效果如下,在表格的单元格中插入控件,用Delegates方式实现 源代码如下: main.cpp文件 #include <QApplication>#include <QStanda ...
- git 分支建立及合并
分支的新建与合并 让我们来看一个简单的分支新建与分支合并的例子,实际工作中你可能会用到类似的工作流. 你将经历如下步骤: 开发某个网站. 为实现某个新的需求,创建一个分支. 在这个分支上开展工作. 正 ...
- [javase学习笔记]-7.5 构造函数须要注意的几个细节
这一节我们简单的说几个在使用构造函数时须要注意的细节. 通过我们前几节的学习,我们对构造函数有了一个比較清楚的认识,当我们在创建对象时.我们会调用构造函数.那么我们在定义和调用构造函数时.须要注意哪些 ...
- HTML5在客户端存储数据的新方法——localStorage
HTML5在客户端存储数据的新方法--localStorage localStorage作为HTML5本地存储web storage特性的API之一,主要作用是将数据保存在客户端中,而客户端一般是指上 ...
- 使用RpcLite构建SOA/Web服务(Full .Net Framework)
使用RpcLite构建SOA/Web服务(Full .Net Framework) SOA框架系列 1. 使用RpcLite构建SOA/Web服务 2. 使用RpcLite构建SOA/Web服务(Fu ...
- webpack单独构建scss文件与.vue组件里构建scss的一个坑
在入口main.js里构建scss是通过引入模块的方式 import './assets/_reset.scss'; import './assets/_flex.scss'; import './a ...