欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-03-29 20:16:27
node.js后端控制层使用工具lodash(文档)js工具库,它内部封装了诸多对字符串、数组、对象等常见数据类型的处理函数(更多学习参考)在控制层中的应用const _ = require('lodash')// d为函数mapDir传入参数,详见 网易严选小程序学习笔记 2 // 模块导出时,d = path.join(__dirname)const [dirs, files] = _(fs.readdirSync(d)).partition(p => fs.statSync(pa...

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

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

相关标签: 自习室 nodejs