前端刷面试题的网站,node常用的模块(四,真香

本文介绍了Node.js中的path模块功能,包括basename,dirname,extname,join和normalize方法,以及Querystring模块用于处理URL查询字符串。还讨论了node服务器的异步和同步文件操作,并提供了一个简单的静态资源服务器示例。同时,强调了学习HTML5、CSS、JavaScript的基础知识和书籍推荐。
摘要由CSDN通过智能技术生成
  1. path模块

  2. path.basename(path[, ext])

  • path路径

  • ext可选的文件扩展名

  • path.basename() 方法返回一个 path 的最后一部分

path.basename(‘/foo/bar/baz/asdf/quux.html’);

// 返回: ‘quux.html’

path.basename(‘/foo/bar/baz/asdf/quux.html’, ‘.html’);

// 返回: ‘quux’

  1. path.dirname(path)
  • path.dirname() 方法返回一个 path 的目录名

path.dirname(‘/foo/bar/baz/asdf/quux’);

// 返回: ‘/foo/bar/baz/asdf’

如果 path 不是一个字符串,则抛出 TypeError。

注意:只能返回目录名,并不能返回目录的详细信息

  1. path.extname(path)

path.extname() 方法返回 path 的扩展名

path.extname(‘index.html’);

// 返回: ‘.html’

path.extname(‘index.coffee.md’);

// 返回: ‘.md’

path.extname(‘index.’);

// 返回: ‘.’

path.extname(‘index’);

// 返回: ‘’

path.extname(‘.index’);

// 返回: ‘’

  1. path.join([...paths])

path.join() 方法使用平台特定的分隔符把全部给定的 path 片段连接到一起,并规范化生成的路径。

path.join(‘/foo’, ‘bar’, ‘baz/asdf’, ‘quux’, ‘…’);

// 返回: ‘/foo/bar/baz/asdf’

path.join(‘foo’, {}, ‘bar’);

// 抛出 ‘TypeError: Path must be a string. Received {}’

  1. path.normalize(path)

path.normalize() 方法会规范化给定的 path,并解析 ‘…’ 和 ‘.’ 片段

  1. path.parse(path)

path.parse() 方法返回一个对象,对象的属性表示 path 的元素。 尾部文件分隔符会被忽略

返回的对象有以下属性

dir

root

base

name

ext

path.parse(‘C:\path\dir\file.txt’);

// 返回:

// { root: ‘C:\’,

// dir: ‘C:\path\dir’,

// base: ‘file.txt’,

// ext: ‘.txt’,

// name: ‘file’ }

  1. QueryString 参数处理

  2. querystring.escape(str)

  3. querystring.unescape(str)

  4. querystring.parse(str[, sep[, eq[, options]]])

  5. querystring.stringify(obj[, sep[, eq[, options]]])

queryString用于解析与格式化 URL 查询字符串

方法一:querystring.escape(str)

对给定的 str 进行 URL 编码。

方法二:querystring.unescape(str)

对给定的 str 进行 URL 解码。

方法三:querystring.stringify(obj[, sep[, eq[, options]]])

将对象转化成字符串

sep 第二个参数 用于界定查询字符串中的键值对的子字符串。默认为 ‘&’。

eq 第三个参数 用于界定查询字符串中的键与值的子字符串。默认为 ‘=’。

options

encodeURIComponent 把对象中的字符转换成查询字符串时使用的函数。默认为 querystring.escape()。该方法通过遍历给定的 obj 对象的自身属性,生成 URL 查询字符串。

// 假设存在 gbkEncodeURIComponent 函数。

querystring.stringify({ w: ‘中文’, foo: ‘bar’ }, null, null,

{ encodeURIComponent: gbkEncodeURIComponent });

方法四:querystring.parse(str[, sep[, eq[, options]]])

将query字符串装华为对象

sep 第二个参数 用于界定查询字符串中的键值对的子字符串。默认为 ‘&’。

eq 第三个参数 用于界定查询字符串中的键与值的子字符串。默认为 ‘=’。

options

decodeURIComponent 解码查询字符串的字符时使用的函数。默认为 querystring.unescape()。

maxKeys 指定要解析的键的最大数量。指定为 0 则不限制。默认为 1000。

  1. HTTP 模块概要

http.createServer([options][, requestListener])

2. node中的异步和同步


fs模块对文件的几乎所有操作都有同步和异步两种形式

例如:readFile() 和 readFileSync()

区别:

同步调用会阻塞代码的执行,异步则不会

异步调用会将读取任务下达到任务队列,直到任务执行完成才会回调

异常处理方面,同步必须使用 try catch 方式,异步可以通过回调函数的第一个参数

var fs=require(‘fs’)

console.time(‘sync’);

try {

var data = fs.readFileSync(‘./c.txt’);

console.log(data);

} catch (error) {

throw error;

}

console.timeEnd(‘sync’);

console.time(‘async’);

fs.readFile(‘./c.txt’,(error, data) => {

if (error) throw error;

console.log(data);

});

console.timeEnd(‘async’);

3.自己写一个node服务器


  1. 普通静态资源服务器

var http=require(‘http’);

//文件模块 操作文件 读取文件,写入文件

var fs=require(‘fs’);

function read(str,res){

fs.readFile(str,function(err,data){

if(!err){

res.write(data);

res.end();

}

})

}

var server=http.createServer(function(req,res){ // /img/2.gif

//接受请求, 做出应有

console.log(req.url);//请求路径 端口后面的,参数前面的 / /favicon.ico

if(req.url==‘/’){

read(‘./index.html’,res);

}else if(req.url==‘/favicon.ico’){

read(‘./img/ico.png’,res);

}else{

read(‘.’+req.url,res); // read(‘.’+‘/img/2.gif’,res)

}

});

//三个参数, 参数一:端口号(取值范围:0-65535,0-1024系统保留端口,80端口可以省略)

//参数二:域名(ip)

//参数三:回调函数

server.listen(3001,‘127.0.0.1’,function(err){

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注前端)
img

结尾

学习html5、css、javascript这些基础知识,学习的渠道很多,就不多说了,例如,一些其他的优秀博客。但是本人觉得看书也很必要,可以节省很多时间,常见的javascript的书,例如:javascript的高级程序设计,是每位前端工程师必不可少的一本书,边看边用,了解js的一些基本知识,基本上很全面了,如果有时间可以读一些,js性能相关的书籍,以及设计者模式,在实践中都会用的到。

html5

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
img

基础知识,学习的渠道很多,就不多说了,例如,一些其他的优秀博客。但是本人觉得看书也很必要,可以节省很多时间,常见的javascript的书,例如:javascript的高级程序设计,是每位前端工程师必不可少的一本书,边看边用,了解js的一些基本知识,基本上很全面了,如果有时间可以读一些,js性能相关的书籍,以及设计者模式,在实践中都会用的到。

html5

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
[外链图片转存中…(img-byJVxjPs-1712480240282)]

  • 19
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值