当前位置:   article > 正文

Node 目录读取和删除,Node 输入 ?_node 导入目录

node 导入目录
  • Node 目录读取 ?

语法:fs.readdir(path,callback);

path:要读取的目录路径。

callback(err,files):files 为数组,包含目录下的文件。

  1. const fs = require('fs')
  2. fs.readdir('xxx', function(err, files) {
  3. err ? console.log('存在错误', err) : console.log('输出目录', files)
  4. })

promise 异步封装;

  1. const fs = require('fs')
  2. // promise 封装
  3. function readDir(path) {
  4. return new Promise(function(resolve, reject) {
  5. fs.readdir(path, function(err, files) {
  6. if (err) {
  7. reject(err)
  8. } else {
  9. resolve(files)
  10. }
  11. })
  12. })
  13. }
  14. readDir('xxx').then(function(res){
  15. console.log('该目录为',res)
  16. })

await 和 async 简化 promise 异步操作;

  1. const fs = require('fs')
  2. // promise 封装
  3. function readDir(path) {
  4. return new Promise(function(resolve, reject) {
  5. fs.readdir(path, function(err, files) {
  6. if (err) {
  7. reject(err)
  8. } else {
  9. resolve(files)
  10. }
  11. })
  12. })
  13. }
  14. // await 和 async 简化 promise 异步操作
  15. async function read_dir(path) {
  16. let pathArr = await readDir(path)
  17. console.log('目录为:', pathArr)
  18. }
  19. read_dir('xxx')
  • Node 目录删除 ?

语法:fs.rmdir(path,callback);

path:要删除的目录路径。

callback 中没有接收参数。

  1. const fs = require('fs')
  2. fs.rmdir('xxx',function(){
  3. console.log('目录删除成功!!!)
  4. })
  • Node 输入 ?

node 中,输出可以使用,console.log('xxx'),输入则需要使用 fs 模块提供的 readline 。

  1. // 1, 导入相关包
  2. let readline = require('readline')
  3. // 2, 实例化接口对象
  4. let r1 = readline.createInterface({
  5. output: process.stdout,
  6. input: process.stdin
  7. })
  8. // 3, question 事件方法
  9. r1.question('你的姓名?', function(answer) {
  10. console.log('姓名是', answer)
  11. // 不加 close 程序不会结束
  12. r1.close()
  13. })
  14. // 4,close 结束事件
  15. r1.on('close', function() {
  16. // 结束程序
  17. process.exit(0)
  18. })

promise 异步封装;

  1. // 1, 导入相关包
  2. let readline = require('readline')
  3. // 2, 实例化接口对象
  4. let r1 = readline.createInterface({
  5. output: process.stdout,
  6. input: process.stdin
  7. })
  8. // promise 异步封装
  9. function question1(title) {
  10. return new Promise(function(resolve, reject) {
  11. r1.question(title, function(answer) {
  12. resolve(answer)
  13. })
  14. })
  15. }
  16. question1('你的姓名?').then(function(res){
  17. console.log('输入的姓名为',res)
  18. })

await 和 async 简化 promise 异步操作; 【实例,询问创建 package.json 文件】

  1. // Node 中输入和输出
  2. // 1, 导入相关包
  3. let { WriteFile } = require('../08_文件写入/index')
  4. let readline = require('readline')
  5. // 2, 实例化接口对象
  6. let r1 = readline.createInterface({
  7. output: process.stdout,
  8. input: process.stdin
  9. })
  10. // 3, question 事件方法
  11. r1.question('你的姓名?', function(answer) {
  12. console.log('姓名是', answer)
  13. // 不加 close 程序不会结束
  14. r1.close()
  15. })
  16. // 4,close 结束事件
  17. r1.on('close', function() {
  18. // 结束程序
  19. process.exit(0)
  20. })
  21. // promise 异步封装
  22. function question1(title) {
  23. return new Promise(function(resolve, reject) {
  24. r1.question(title, function(answer) {
  25. resolve(answer)
  26. })
  27. })
  28. }
  29. async function createPackage() {
  30. let name = await question1('您的包名叫什么?')
  31. let description = await question1('您的包如何描述?')
  32. let version = await question1('程序版本是什么?')
  33. let author = await question1('您的包作者是谁?')
  34. let content = `{
  35. "name": "${name}",
  36. "version": "${version}",
  37. "author": "${author}",
  38. "description": "${description}",
  39. "scripts": {
  40. "serve": "vue-cli-service serve",
  41. "build": "vue-cli-service build",
  42. "lint": "vue-cli-service lint"
  43. }
  44. }
  45. `
  46. await WriteFile('package.json', content)
  47. // 最终写完内容,关闭输入进程
  48. r1.close()
  49. }
  50. createPackage()

 

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号