当前位置: 移动技术网 > IT编程>开发语言>JavaScript > 网易严选小程序学习笔记 3

网易严选小程序学习笔记 3

2020年07月17日  | 移动技术网IT编程  | 我要评论

node.js后端

控制层使用工具

在控制层中的应用

const _ = require('lodash')

// d为函数mapDir传入参数,详见 网易严选小程序学习笔记 2 
// 模块导出时,d = path.join(__dirname)
const [dirs, files] = _(fs.readdirSync(d)).partition(p => fs.statSync(path.join(d, p)).isDirectory)

// 映射文件夹
// 如果还有目录的话,继续遍历
// 平时没怎么用,复习一下,这叫递归:递归函数就是在函数体内调用本函数
// 是不是想起了大学学的斐波那契数列
dirs.forEach(dir => {
    tree[dir] = mapDir(path.join(d, dir)) // 将目录名作为将要返回的对象的属性名
});

// 映射文件
files.forEach(file => {
    // 获取文件后缀名字
    if (path.extname(file) === '.js') {
        tree[path.basename(file, '.js')] = require(path.join(d, file)) // 返回不带后缀的所有js文件的文件名
    }
})

1、lodash

lodash中文文档

js工具库,它内部封装了诸多对字符串、数组、对象等常见数据类型的处理函数(更多学习参考

_.partition()

返回分成两组的元素数组,第一组为断言条件true,第二组断言条件false
通过partition方法,将fs.readdirSync(d)返回的数组,区分出文件夹和文件,dirs为文件夹,files为文件

2、fs

node文件系统(File System)

fs.Dirent 类:dirent.isDirectory()

如果 fs.Dirent 对象描述文件系统目录,则返回 true。

fs.readdirSync(path[, options])

同步获取路径下所有目录的文件名(包括目录和文件)

options参数:

  1. encoding 默认值: ‘utf8’
  2. withFileTypes 默认值: false

fs.Stats 类:fs.statSync(path[, options])

同步获取文件信息,用于调用isDirectory()进行判断

3、path

参考:
Node.js Path 模块 菜鸟教程
path.join()和path.resolve()区别
Node.js 内置path模块,join()拼接路径,extname()获取扩展名

node.js内置模块,处理文件路径的小工具,用于连接路径。该方法的主要用途在于,会正确使用当前系统的路径分隔符,Unix系统是"/",Windows系统是""

path.join()

将字符串拼接成路径

path.join(‘a’, ‘b’, ‘c’) 的结果是 ‘/a/b/c’
path.join(‘a’, ‘/b’, ‘c’) 的结果是 ‘/a/b/c’
path.join(‘a/b’, ‘…/’, ‘c’) 的结果是 ‘/a/c’
path.join(‘a’, ‘./’, ‘c’) 的结果是 ‘/a/c’
所以path.join(__dirname)返回 /home/index(未验证)

path.extname()

获取文件的后缀名
console.log(path.extname("home/index.js")); // .js

path.basename()

截取路径中最后一个"/"后的内容 (可以截取出文件名)
console.log(basename = path.basename('home/index.js')); // index.js
console.log(basename = path.basename('home/index.js', '.js')); // index

项目来源:cleversnail/mpvue-koa
学习参考:b站掘金

本文地址:https://blog.csdn.net/u014219356/article/details/107380510

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网