Four Day
-------------------------node.js分对象全局/核心模块/文件模块
path(核心模块)--作用:操作路径
basername/获取传入路劲
dimame/获取传入路径目录
extname/获取出入路径的扩展名
join/讲两个或以上的路径拼接在一起
parse/将传入路径转为一个路径对象
fomart/将出入路径转为一个字符串
delimlter/得到操作系统分割符
---------------------------
url(核心模块)--作用:操作url
组成:协议名/用户名和密码/服务器ip地址/端口号/请求路径/参数/哈希值
parse/讲一个url路径字符串,转放一个路径对象
format/将一个路径对象传为url路径字符串

-----------------------------------------------------------
querystring(模块):操作url中的参数
parse/讲一个参数字符串转为一个参数对象
stringify

-----------------------------------------------------------------
文件模块:又叫第三方包---------一些功能相似的模块集合
*包必须放在node_modules文件下
*包必须有的文件--README.md(说明文件)
/package.json(必须在包的根目录下)
/js文件放在liy文件中
package.json:name--包名/version--包版本/description--包描述
/main--包出口文件/
require关键字引包:*把当前包当作核心模块加载
*加载不到就去(node_moudules)
*加载package.json找
*找不到就报错
npm上传包:*标准格式包
*注册npm账号
*去包根目录,通过shell输入npm adduser/登陆npm/npm publish包名
-----------------------------------------------------------------------------
ES 6新语法:use strict---开启严格模式
*不允许‘let’反复定义一个变量,会报错
let name='zm';
let name='xb'; //这样会报错
---------------------------------
const banben='window';
*值不能改变
*常量具有块级作用域
*不要再快中申明常量
*不可以算不算申明同名的常量
*一定要赋初始值,否则报错
*如果声明的是对象,对象的地址不能改变,但可以改变其内部的属性
----------------------------------
字符串的扩展:
xxx.includes();//返回boolean值,判断是否含有该字符
xxx.startsWith('hello');//返回boolean值,判断以什么字符开头,两个参数:1.字符,2.起始位置
xxx.endWith('以什么结尾’);//原理同上
xxx.repeat('重复输出字符串次数')//参数为正数/正小数数字
------------------------------------------------------------------------------------------------
模板语法:‘模板字符串’
*定义一个模板,并且给模板加一些占位,${}.....,${}......
*给模板里的变量赋值
*${}可以放变量/方法/表达式
-----------------------------------------------------------------------------------------
箭头函数
方法一:匿名函数中的function关键字我们可以省略,参数与方法体之间中=>
var arr=[];
$(arr).each((index,item)=>{console.log(item);})
方法二:去掉{}
$(arr).each((index,item)=>console.log(item);)
方法三:去掉()
$(arr).each(index=>console.log(arr[index]);)

*如果参数只有一个,可以去掉调参数的();
*如果有两个或者两个以上的参数()不去掉
*如果没有参数,()不能去掉
方法体:
*只有一句,就省略
*有多句代码就不能省略
---------------------------------
*箭头函数没有自己的this,函数体内部写的this,会顺着作用域去找最真实存在的this
*node中使用settimeout传入一个匿名函数,这个函数中如果使用到了this=定义时的对象(并且不会改变),为了方便不建议使用this
*箭头函数不能作为构造函数
*箭头函数不存在arguments
---------------------------------------------------------------------------------------------------、
文件读写核心模块File System(fs)
2.1Buffer对象:存储底层二进制数据
使用:
*var buf =new Buffer(5);//设置长度为5的数组
console.log(buf);这个数组中美个数对应的内存地址
buffer对象本质上市一个二进制数组,但在西纳斯的时候为了空间,输出时由二进制转为十六进制
清空buffer数组:
buf.fill(0);
console.log(buf);
存储:字母--》占一个字节 汉字-->占3个字节
如果数组长度不能容纳所有的内容,那么将来这个数组将走出的部分自动省略
buf.writ('我');
buf.toString(将数组以字符串输出)
var buf = new Buffer('lslsl');按需分配长度;
const fs=require('fs');
const iconv=require('iconv-lite')
fs.readFile('./1.txt',(err,data)=>{
//err 存储错误信息
if(err){
console.log('文件读取失败');
return;
}
consolo.log(iconv.decode(data,'gb2312));//toString默认把二进制转为utf-8的内容
//data 成功存储的位置
});
总结:可能会用不到,buffer不支持gb2312,可通过下载第三方包icon改变
----------------------------------------------------------------------------------------------------
文件操作:操作目录--通过nodejs代码来增加/删除
创建一个文件夹:fs.mkdir(srcpath,dstpath,callback)/fs.unlink(删除文件)/fs.exists(路径,(exists)=>{}判断目录是否存在
fs.readFile(读文件)/fs.rename(改文件)
’use strict' //进入严格模式
const fs=require('fs'); //引包
fs.mkdir('./aa路径',(err参数)=>{
if(err){
console.log('添加失败');
return;

}
console.log('success');
--------------------------------------------------
写文件:writeFile(覆盖)/appendFile(追加)
writeFile:
'use strict'
const fs=require('fs');
fs.writeFile('./aa/bb/1.txt','醉了',(err)=>{
if(err){
console.log('写入失败');
return;
}
console.log('写入成功');
};
监控文件(文件是否被改动):fs.wantchFile
fs.writeFile('./.../','hello world',(err)=>{
if(err){
console.log('...');
}
console.log('...');
。。。。。。。。。。。。。。。。。。。。。。。
fs.watchFile('....',(curr,prev)=>{
console.log('curr=${curr}');
console.log('curr=${prev}')
}
如果读取大文件,data/buffer这个数组的长度有限,要用文件流:fs.createReadStream(pah[,options])将文件以流方式读出来/fs.createWriteStream将文件以流方式写进去
let pathOld= '....';
let pathTarget ='....';
let rs=fs.creatReadStream(pathOld);
let ws=fs.creatWriteStream(pathTarget);
//chunk,当回掉函数执行,就会触发chuunk文件,内容为本次读出的内容
rs,on('data',(chunk)=>{
ws.write(chunk);
})
rs.on('end',()=>{
console.log('....');
ws.end(()=>{
console.log('');
};
};
-------------------------------------------------------------上面的方法的简单版(但过程不可控)
'use strict'
let pathOld= '....';
let pathTarget ='....';
let rs=fs.creatReadStream(pathOld);
let ws=fs.creatWriteStream(pathTarget);

rs.pipe(ws);

node,不懂不懂的更多相关文章

  1. node lesson4--eventproxy不懂

    var express = require('express'); var superagent = require('superagent'); var cheerio = require('che ...

  2. node不懂的方法的使用

    1. 学习的时候注意,过滤器,上传文件sftp,读取excel,还有cookie的操作,sql的操作.node的框架express koa hapi 还有引擎ejs,hbs,jade,日志管理等,并发 ...

  3. Node.js(转) -- 临时来说还看不懂!

    转自:http://blog.jobbole.com/53736/ 本文由 伯乐在线 - Lellansin 翻译.未经许可,禁止转载!英文出处:toptal.欢迎加入翻译组. 介绍 JavaScri ...

  4. 看完我的笔记不懂也会懂----Node.js

    Node.js 学习 - 命令行窗口 - 进程与线程 - ECMAScript的缺点 - Node模块化 - Node中的全局对象 - 包 package - NPM包管理器 (Node Packag ...

  5. HDU 4507 求指定范围内与7不沾边的所有数的平方和 (数位DP)

    题意:求区间[l,r]内所有与7无关的数的平方和(取模)定义与7无关的数:                                      1.数字的数位上不能有7              ...

  6. 如何给Ionic写一个cordova插件

    写一个cordova插件 之前由javaWeb转html5开发,由于面临新技术,遂在适应的过程中极为挣扎,不过还好~,这个过程也极为短暂:现如今面临一些较为复杂的需求还会有一丝丝头痛,却没有一开始那么 ...

  7. 给Ionic写一个cordova(PhoneGap)插件

    给Ionic写一个cordova(PhoneGap)插件 之前由javaWeb转html5开发,由于面临新技术,遂在适应的过程中极为挣扎,不过还好~,这个过程也极为短暂:现如今面临一些较为复杂的需求还 ...

  8. php中加密和解密

    项目要和第三方进行接口对接,所以数据的安全很重要.第一次自己设计并实现,学习记录下 网上查了很多资料,真的很深奥 对称加密: 双方共用一个约定好的密钥进行数据的加密和解密,但是当密匙丢失,数据将有泄露 ...

  9. Gunicorn配置部分的翻译

    写在前面,虽然翻译得很烂,但也是我的劳动成果,转载请注明出处,谢谢. Gunicorn版本号19.7.1 Gunicorn配置 概述 三种配置方式 优先级如下,越后的优先级越大 1.框架的设置(现在只 ...

随机推荐

  1. Libgdx 开发指南——目录

    本系列文档选译自libgdx github项目 wiki : https://github.com/libgdx/libgdx/wiki 由于关于Libgdx的中文文档非常稀缺,因此在这里对官方Wik ...

  2. memcache详解

    MemCache是一个自由.源码开放.高性能.分布式的分布式内存对象缓存系统,用于动态Web应用以减轻数据库的负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高了网站访问的速度. Me ...

  3. cortex-a8硬件基础练习

    实验要求:定时通过串口打印adc,时间和温度,开关量检测和通过串口接收命令控制led小灯的动作 下面是整理的代码: #include "s5pc100.h"#include &qu ...

  4. 12-8下午 php语法

    <?php //var_dump(empty($a)); //判断变量是否为空//var_dump(isset($a)); //判断变量是否定义//$a = 10;//unset($a); // ...

  5. 《深入浅出Node.js》第4章 异步编程

    @by Ruth92(转载请注明出处) 第4章 异步编程 Node 能够迅速成功并流行起来的原因: V8 和 异步 I/O 在性能上带来的提升: 前后端 JavaScript 编程风格一致 一.函数式 ...

  6. (实用篇)php通过会话控制实现身份验证实例

    会话控制的思想就是指能够在网站中根据一个会话跟踪用户.这里整理了详细的代码,有需要的小伙伴可以参考下. 概述 http 协议是无状态的,对于每个请求,服务端无法区分用户.PHP 会话控制就是给了用户一 ...

  7. C# Excel导入

    两张表导入到一个DataGrid里面(题目表和答案表) 前台代码 <asp:Content ID="Content1" ContentPlaceHolderID=" ...

  8. 根据滑动显隐状态栏的iOS实现

    之前很多兄弟问如何实现类似于淘宝客户端搜索列表那种动态显隐的效果,这几天刚好有时间,就实现了几个例子搞一下,其实原理很简单,也参考了github上一位兄弟的实现.不多说,上代码 @interface ...

  9. ASP.NET MVC : Action过滤器(Filtering)

    http://www.cnblogs.com/QLeelulu/archive/2008/03/21/1117092.html ASP.NET MVC : Action过滤器(Filtering) 相 ...

  10. 盯盯拍Android App 3.0指导

    http://www.ddpai.com/bbs/thread-233-1-1.html 视频介绍:http://v.17173.com/v_102_604/MzA0OTAwMDg.html