nodejs练习笔记(一)

Node.js 安装包:https://nodejs.org/en/download/。Node配置:https://www.runoob.com/nodejs/nodejs-install-setup.html

npm和cnpm安装步骤:https://blog.csdn.net/wjnf012/article/details/80422313

nodejs

一、用 Node 创建 Web 服务器

1.server.js

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

//创建服务器 
http.createServer(function(request,response){
	//解析请求,包括文件名
	var pathname=url.parse(request.url).pathname;
	
	//输出请求的文件名
	console.log("Request for"+pathname+"received");
	
	//从文件系统中读取请求的文件内容
	fs.readFile(pathname.substr(1),function(err,data){
		if(err){
			console.log(err);
			//HTTP状态码:404:NOT FOUND
			//Content Type:text/html
			response.writeHead(404,{'Content-Type':'text/html'});
		}else{
			//HTTP状态码:200:OK
			//Content Type:text/html
			response.writeHead(200, {'Content-Type': 'text/html;charset="utf-8"'});
			//响应文件内容
			response.write(data.toString());
		}
		//发送响应数据
		response.end();
	});
}).listen(8080);
//控制台会输出以下信息
console.log('Server running at http://127.0.0.1:8080/');

2.index.html

<!DOCTYPE html>
<html>
<head>
<mate charset="utf-8">
<title>测试测试(runoob.com)</title>
</head>
<body>
	<h1>标题-2020-10-14-周3</h1>
	<p>段落-271.</p>
</body>
</html>

 3.打开cmd命令行执行server.js文件

4.打开浏览器输入127.0.0.1:8080/index.html 

二、用 Node 创建 Web 客户端

client.js

var http = require('http');
 
// 用于请求的选项
var options = {
   host: 'localhost',
   port: '8080',
   path: '/index.html'  
};
 
// 处理响应的回调函数
var callback = function(response){
   // 不断更新数据
   var body = '';
   response.on('data', function(data) {
      body += data;
   });
   
   response.on('end', function() {
      // 数据接收完成
      console.log(body);
   });
}
// 向服务端发送请求
var req = http.request(options, callback);
req.end();

打开命令行执行client.js文件

三、Node.js 回调函数

第一个实例在文件读取完后才执行程序。 第二个实例我们不需要等待文件读取完,这样就可以在读取文件时同时执行接下来的代码,大大提高了程序的性能。

input.txt

阻塞代码实例 main.js

var fs=require("fs");
var data=fs.readFileSync('input.txt');

console.log(data.toString());
console.log("程序执行结束!");

执行main.js

非阻塞代码实例 main1.js

 var fs=require("fs");
 
 fs.readFile('input.txt',function(err,data){
	 if(err)return console.error(err);
	 console.log(data.toString());
 });
 console.log("程序执行结束!");

执行main1.js

 

var定义的变量,没有块的概念,可以跨块访问, 不能跨函数访问。
let定义的变量,只能在块作用域里访问,不能跨块访问,也不能跨函数访问。
const用来定义常量,使用时必须初始化(即必须赋值),只能在块作用域里访问,而且不能修改。

 

四、Node.js 事件循环

事件驱动程序

main.js

// 引入 events 模块
var events = require('events');
// 创建 eventEmitter 对象
var eventEmitter = new events.EventEmitter();
 
// 创建事件处理程序
var connectHandler = function connected() {
   console.log('连接成功。');
  
   // 触发 data_received 事件 
   eventEmitter.emit('data_received');
}
 
// 绑定 connection 事件处理程序
eventEmitter.on('connection', connectHandler);
 
// 使用匿名函数绑定 data_received 事件
eventEmitter.on('data_received', function(){
   console.log('数据接收成功。');
});
 
// 触发 connec
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sam-zy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值