我目前正在为同事开发“ Dupe Finder”网络应用。这是我第一次使用'csvtojson'软件包。
我从服务器上的文件读取得很好,但是当我将响应发送回客户端(理想情况下包含json对象)时,我收到了这个非常奇怪的控制台日志,并且不确定其是否正确:
为了获得此响应,我在主页上有一个按钮,单击该按钮时,客户端会在服务器的主目录(称为“ / getnums”)上发出http请求。该请求从CSV读取,然后应该返回,并且obj及其内容。这样做是在屏幕快照中,如果我单击promiseValue旁边的勾号,它将给我一个数组。但是我不确定为什么它会返回一个承诺。
api.js:
var CSVDATA = () => {
fetch('/getnums')
.then(res => {
console.log(res.json())
})
}
export default {
CSVDATA,
}
'/ getnums'进入我的路由器,也就是router.get('/',mainController.getNums)
在控制器中开始读取的位置:
const csv = require('csvtojson')
module.exports = {
getNums: (req, res, next) => {
const csvFilePath = `${__dirname}/../../client/readFrom/main.csv`
csv().fromFile(csvFilePath)
.then(jsonObj => {
return res.status(200).json(jsonObj)
})
.catch(e => {
req.error = e
next()
})
},
}
有人知道这里会发生什么吗?
最佳答案
这就是.json()
的工作原理。
它返回promise,因此您需要异步处理它
var CSVDATA = () => {
fetch('/getnums')
.then(res => res.json())
.then(json => console.log(json));
}
export default {
CSVDATA,
}
MDN link