JavaScript экспресс, узел и CSVtoJSON - PullRequest
0 голосов
/ 29 августа 2018

В настоящее время я разрабатываю веб-приложение Dupe Finder для коллеги. Я впервые использую пакет 'csvtojson'.

Я прекрасно читаю из файла на сервере, но когда я отправляю ответ клиенту (в идеале содержащий объект json), я получаю очень странный консольный журнал и не уверен, что его правильно:

console.log(res.json())

Чтобы получить этот ответ, у меня есть кнопка на домашней странице, при нажатии которой клиент отправляет http-запрос в домашнюю директорию сервера, которая называется / getnums. Запрос читает из CSV, затем должен возвращаться и obj с его содержимым. вроде делает это, на скриншоте, если я нажму на галочку рядом с обещать значение, оно даст мне массив. Но я не уверен, почему он возвращает Обещание .. во всяком случае ..

api.js:

var CSVDATA = () => {
fetch('/getnums')
    .then(res => {
        console.log(res.json())
    })
}

export default {
    CSVDATA,
}

'/ getnums' идет к моему маршрутизатору, который является simly 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()
        })
    },
}

У кого-нибудь есть идея, что здесь может происходить?

1 Ответ

0 голосов
/ 29 августа 2018

Так просто работает .json().

Возвращает обещание, поэтому вам нужно обрабатывать его асинхронно

var CSVDATA = () => {
    fetch('/getnums')
        .then(res => res.json())
        .then(json => console.log(json));
}

export default {
    CSVDATA,
}

MDN ссылка

...