我目前正在为同事开发“ 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()
})
},
}
任何人都知道这里可能会发生什么?
答案 0 :(得分:2)
.json()
的工作原理就是这样。
它返回promise,因此您需要异步处理
var CSVDATA = () => {
fetch('/getnums')
.then(res => res.json())
.then(json => console.log(json));
}
export default {
CSVDATA,
}