简体   繁体   中英

Not able to read files content inside NodeJS

I have some markdown files inside /markdown folder. I am trying to read content of these files. I can see the file names inside the array. But when I try to read it, it doesn't return any data or error. What needs to be done here?

 app.get("/", async(req, res) => { const mdPath = "...path" const data = await fs.readdirSync(mdPath); console.log(data) // Return Array of files for (let i = 0; i <= data.length; i++) { const fileContent = fs.readFileSync(i, "utf-8"); return fileContent; } })

You should use something like path() to better handle the filesystem side.

This could work your way:

const fs = require('fs') // load nodejs fs lib
const path = require('path') // load nodejs path lib
const mdPath = 'md' // name of the local dir
const data = fs.readdirSync(path.join(__dirname, mdPath)) //join the paths and let fs read the dir
console.log('file names', data) // Return Array of files
for (let i = 0; i < data.length; i++) {
  console.log('file name:', data[i]) // we get each file name
  const fileContent = fs.readFileSync(path.join(__dirname, mdPath, data[i]), 'utf-8') // join dir name, md folder path and filename and read its content
  console.log('content:\n' + fileContent) // log its content
}

I created a folder ./md , containing the files one.md, two.md, three.md . The code above logs their content just fine.

>> node .\foo.js
file names [ 'one.md', 'three.md', 'two.md' ]
file name: one.md
content:
# one

file name: three.md
content:
# three

file name: two.md
content:
# two

Note that there is no error handling for anything that could go wrong with reading files.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM