用简单的案例去学习Node.js

一 环境

1 官网node.js的下载

下载 官网 选择适合的版本 http://nodejs.cn/download/

2 下载安装完成以后 测试 node -v npm -v

在这里插入图片描述

二 什么是NodeJS?

2.1 NodeJS 是基于Chrome V8引擎的 JavaScript 运行环境(可以在服务器上运行 JavaScript)

第一个Node.js程序
在这里插入图片描述

2.2 在Node里面最常使用的匿名函数

匿名函数 :由名可知,匿名函数就是没有名字的函数
在这里插入图片描述

//有名函数
function helloWorld() {
 console.log("hello1");
}
helloWorld();
//匿名函数
function helloWorld2(anoymousFunction) {
    anoymousFunction();}
 helloWorld2(function(){ console.log("hello2") })
//有名
function helloWorld() {
 console.log("hello1");
}
helloWorld();
//匿名函数
function helloWorld2(anoymousFunction) {
    anoymousFunction();}
 helloWorld2(function(){ console.log("hello2") })

2.3 Node.js在服务器启动

引入模块:模块是Node.js 应用程序的基本组成部分,可以理解为java里面的导入包

  const http = require('http');
 //1 导入模块http
//2 创建httpServlet服务
http.createServer(function(request,response){
    response.writeHead(200,{'Content-type':'text/html'});//浏览器如何去解析接收到的数据
    response.end("<h1>hello Server</h1>");  //传输给服务器的数据
}).listen(8888); //3 监听端口8888
console.log("证明node在服务器启动")

2.4 EventEmitter 事件触发与事件监听器功能

添加监听对象以后如果事件被触发以后会执行
案例

var EventEmitter = require('events').EventEmitter;
var event =new EventEmitter();
  event.on('some_event',function () {
      console.log('some_event 事件触发');
  })
setTimeout(function () {
    event.emit('some_event');
},1000);

var events = require('events');
var emitter = new events.EventEmitter();
emitter.on('someEvent', function(arg1, arg2) {
    console.log('listener1', arg1, arg2);
});
emitter.on('someEvent', function(arg1, arg2) {
    console.log('listener2', arg1, arg2);
});
emitter.emit('someEvent', 'arg1 参数', 'arg2 参数');

在这里插入图片描述

2.5 Stream 流事件

无论是学 java还是Node Stream是绕不开的 可以对比学习

案例 先输入流 再输入流

//写入流

var fs = require("fs");
var data = 'mayongtong';
// 创建一个可以写入的流,写入到文件 input.txt 中
  var  writeStream =fs.createWriteStream("input.text");
   // 使用 utf8 编码写入数据
    writeStream.write(data,'UTF8');
  // 标记文件末尾
  writeStream.end();

// 处理流事件 --> finish、error

writeStream.on('finish',function () {
  console.log("写入完成");
})
writeStream.on('error',function (err) {
  console.log("写入失败")
})
console.log("程序执行完毕");
// 创建可读流
var readerStream = fs.createReadStream('input.text');
// 设置编码为 utf8。
readerStream.setEncoding('UTF8');
// 处理流事件 --> data, end, and error
readerStream.on('data', function(chunk) {
  data += chunk; //chunk(Buffer对象)相当于buffer.toString() + buffer.toString()
});
readerStream.on('end',function(){
  console.log(data);
});
readerStream.on('error', function(err){
  console.log(err.stack);
});
console.log("程序执行完毕");

在这里插入图片描述

2.6 node 去连接数据库Mysql

2.6.1 先导入mysql的依赖包

var mysql= require('mysql');

2.6.2 创建一个mysql的Connection对象

var connection=mysql.createConnection({
     host:"127.0.0.1",
     port:3306,
     user:"root",
     password:"123456",
     database:"data"  //本地数据库
})

2.6. 3 开辟连接

connection.connect();
connection.query("select * from classafter",function (error,result) {
if(error) throw error;
console.log("results = ",result);
} );
//查询语句后面的函数是 非阻塞代码 意思是 不需要等待语句执行完,这样就可以在执行语句同时执行接下来的代码,大大提高了程序的性能。
console.log("程序执行结束!");
connection.end( );

在这里插入图片描述

源码放git需要的自取 https://gitee.com/Ma2321035705/node.git

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值