node基础

node中文网http://nodejs.cn/api/buffer.html#buffer_class_method_buffer_allocunsafe_size
node学习第一天

md hello 新建文件夹hello

rd hello 删除文件夹

cd …

dir

1.环境变量

系统中的变量系统中的变量

当在命令窗口中打开文件时 现在当前文件中找文件 然后再去环境变量 path的路径中寻找 可以将经常用的文件路径放到环境变量中 这样可以在cmd中一下就能访问

2.进程和线程

进程:为程序的运行提供必备的环境

进程就相当于工厂中的车间

线程:负责执行保存在进程中的程序(相当于工人–干活的)

3.单线程多线程(一个人干活 多个人干活)

4.node.js

js是在客户端浏览器执行的 node在服务器中运行和系统(windows等)进行交互—后端

node学习第二天

commonjs 模块化规范

引入外部模块(require)相对路径 02module.js 必须以. 开头 或者… 开头

通过exports的属性向外暴露成员

console.log('模块1');
let x = 20;
let y  = 30;
 // 想暴露变量给宁一个模块必须使用exports向外部暴露
 exports.x = x ;
 
 
let md  = require('./module1.js');
console.log(md);

暴露2个方法

 exports.add = function(x,y){
 		return x+y
 	}
 exports.sub = function(x,y){
 		return x-y
 	}
 
 
 使用
 let md  = require('./module1.js');
 console.log(md.add(3,4));

核心模块–node自带 文件模块自定义

require(‘fs’)

全局变量 – global 变量

node中没有window对象 —相等于window

arguments 函数的实参 伪数组 arguments.callee 函数

模块中的变量是在一个函数中执行的,一个js 模块文件都会生成如下的函数

function (exports, require, module, __filename, __dirname) {
let x = 20;
let y  = 30;
console.log(arguments.callee+'');
 exports.add = function(x,y){
                return x+y
        }
 exports.sub = function(x,y){
                return x-y
        }

}

module.exports==exports true 指向同一个对象

module模块对象

F:\笔记\code>node module2.js __filename 文件名称

F:\笔记\code\module1.js F:\笔记\code __dirname 所在文件夹名称

module.exports 和 exports 区别

module.exports={
name:'',
age:23
}
module.exports 都可以
exports只能通过. 暴露成员

包的使用

npm node包管理器

npm search math 搜索与数学相关的包

node 第三天

buffer缓冲区

buffer和数组基本相同,为啥还要弄buffer—弥补数组的不足

node服务器运行 不仅需要字符串 还需要二进制文件 包括视频图片 数组不可以存储二进制数据,而且性能比传统数组好很多,buffer存储的都是二进制数据,但是显示时都是以16进制显示的

如何创建buffer

let str = 'hello buffer';
// 将字符串存在buffer中
let buf = Buffer.from(str);
console.log(buf);

<Buffer 68 65 6c 6c 6f 20 62 75 66 66 65 72>

buffer一个元素占一个字节 二进制 00000000-11111111 超出后会截取后面的

输出后是展示10进制

let str = 'hello buffer';
// 将字符串存在buffer中
let buf = Buffer.from(str);
console.log(buf);
//  如何创建10个字节的buffer
let buffer2  = Buffer.alloc(10);
console.log(buffer2);
buffer2[2]=55;
console.log(buffer2);
// buffer 大小确定长度后就不能修改了数组的元素存放是连续的
let buffer3  = Buffer.allocUnsafe(10);
console.log(buffer3);

buffer.alloc 和 buffer.allocUnsafe 区别

alloc 分配内存后会把之前使用的内存数据清空 allocUnsafe 之前使用的可能不会被清空还是上次别人使用的内存数据

如何将数据转化成二进制

Buffer.from 字符串转化成二进制

toString 二进制转化成字符串

http://nodejs.cn/api/buffer.html#buffer_class_method_buffer_allocunsafe_size

文件系统

文件的写入

打开文件

fs.openSync(path[, options])

path打开路径

flags: 写还是读

写入文件 fs.writeSync;

fs.closeSync(fd)关闭文件

//  文件系统
let fs= require('fs');
// 同步 异步
// 文件写入  同步
// 打开文件
let f= fs.openSync('hello.txt','w');
// 写入
fs.writeSync(f,'创建第一个文件');
// 关闭文件
fs.closeSync(f);

异步写入

//  异步写入
 fs.open('hello1.txt','w',function(err,fd){
 if(!err){
     fs.write(fd,'异步写入ee',function(err){
         if(!err){
             console.log('写入成功')
         }
         fs.close(fd,function(err){
         
        })
     })
 }
 
 });

简单文件写入

fs.writeFile fs.writeFile(file, data[, options], callback)

 fs.writeFile('hello1.txt','writeFile写的',function(err){
  if(!err){
      console.log('hhaha')
  }
 })
 
 fs.writeFile('hello1.txt','writeFile写的1',{flag:'a'},function(err){
  if(!err){
      console.log('hhaha')
  }
 })

fs.writeFileSync

// 追加 flag w 重写 r 读取 a 追加

流式文件写入

fs.createReadStream(path[, options])

fs.createReadStream

//  流式写入
let ws = fs.createWriteStream('hello3.txt');
ws.once('open',function(){
    console.log('文件流打开')
})
ws.write('可写入文件流');
ws.write('可写入文件流');
ws.write('可写入文件流');
ws.write('可写入文件流');
//  关闭流
ws.end();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值