【发布时间】:2019-11-19 10:07:20
【问题描述】:
我有一个 JSOn 文件列表,我想将其读入一个数组,所以每个对象都是 json 文件的内容。
我是 Node 和 Express 的新手,但到目前为止我已经尝试过了。
const express = require('express')
const app = express()
const port = 3001
const fs = require('fs')
//file upload
const dataFolder = './parsed_json_data'
let fileNames = []
let fileObjects = []
fs.readdir(dataFolder,(err, files) =>{
if(err){
return console.log(err)
}
fileNames = files.forEach(file =>{
fileNames.push(file)
console.log(fileNames)
});
})
fileNames.forEach(fileName =>{
fs.readFile(fileName, 'uft8', (err, data) =>{
if(err){
console.log(err)
}
fileObjects.push(JSON.parse(data))
console.log(fileObjects)
})
})
app.get('/', (req, res) => res.send('Hello World!'))
app.listen(port, () => console.log(`Example app listening on port ${port}!`))
问题是它是异步操作吗?如果是这种情况,我该如何让它等待,以便在映射之前读取文件名?
我尝试过使用 async/await,但没有成功,因为它是单独的操作?
【问题讨论】:
-
How do I return the response from an asynchronous call? 或使用
...Sync()版本的io
标签: javascript node.js express io