Vuejs app простая выборка post вставляет только _id, а не json

#javascript #node.js #vue.js #post #fetch

#javascript #node.js #vue.js #Публикация #выборка

Вопрос:

У меня есть приложение с Vue.js и в методе я создал простую выборку для публикации в моем API, но в моем mongodb сохраняется только _id .

Мой метод в приложении Vuejs (я создал переменную с json для проверки моей выборки post):

 saveAllResults(){
            let myvalue ='{"Step2":[{"selected":!1,"produto":"A70-5","ncm":"9506.62.00","aliqII":.2,"aliqIpi":0,"aliqPis":.021,"aliqCofins":.0965,"descricao":"BOLA DE BASQUETE","pesoUnitario":.43,"unitario":.78,"dumping":0,"cubagemUnitario":0,"quantidade":150,"icmEstadoDestino":0,"mvaAjustado":0,"markup":.12},{"selected":!1,"produto":"PINK-7-103","ncm":"7117.90.00","aliqII":.18,"aliqIpi":.12,"aliqPis":.021,"aliqCofins":.0965,"descricao":"BIJOUTERIAS EM METAL/ VIDRO ","pesoUnitario":.975,"unitario":1.52,"dumping":0,"cubagemUnitario":0,"quantidade":200,"icmEstadoDestino":0,"mvaAjustado":0,"markup":.11},{"selected":!1,"produto":"PINK-7-103","ncm":"7117.90.00","aliqII":.18,"aliqIpi":.12,"aliqPis":.021,"aliqCofins":.0965,"descricao":"BIJOUTERIAS EM METAL/ VIDRO ","pesoUnitario":.975,"unitario":1.52,"dumping":0,"cubagemUnitario":0,"quantidade":300,"icmEstadoDestino":0,"mvaAjustado":0,"markup":.19}],}';
           
            fetch('http://localhost:4242/api/v1/dis', {
                method: 'post',
                body: myvalue
            }).then(function(response){
                return response.json(myvalue);
            }).then(function(text){
                console.log(text);
            }).catch(function (error){
                console.error(error);
            })
            
}
  

мой маршрут в моем API (я использую express, morgan, joi, helmet, cors, bodyParse с MongoDB)

 // CREATE  ONE 
router.post('/', async (req, res, next) => {
    try {
        const value = await schema.validateAsync(req.body);
        const inserted = await dis.insert(value);
        res.json(inserted);
    } catch (error) {
        next(error);
    }
}); 
  

Когда я пытаюсь опубликовать те же данные в формате json с помощью Isominia (или postman), post работает нормально, но с моим последним запросом post генерируется только _id и не публикуются все данные, которые я хочу.

Результат выборки Post возвращается в консоль:

 {_id: "5f376d6edd37760c6632c8ab"}
  

Ответ №1:

После того, как совершенно забыл, что вам нужно указать headers в вашем fetch POST request для передачи json в ваш API и использовать метод JSON.stringuify для переменной, таким образом, код, передающий заголовки в моей выборке, является:

 saveAllResults(){
            let myvalue =JSON.stringify({"Step2":[{"selected":!1,"produto":"A70-5","ncm":"9506.62.00","aliqII":.2,"aliqIpi":0,"aliqPis":.021,"aliqCofins":.0965,"descricao":"BOLA DE BASQUETE","pesoUnitario":.43,"unitario":.78,"dumping":0,"cubagemUnitario":0,"quantidade":150,"icmEstadoDestino":0,"mvaAjustado":0,"markup":.12},{"selected":!1,"produto":"PINK-7-103","ncm":"7117.90.00","aliqII":.18,"aliqIpi":.12,"aliqPis":.021,"aliqCofins":.0965,"descricao":"BIJOUTERIAS EM METAL/ VIDRO ","pesoUnitario":.975,"unitario":1.52,"dumping":0,"cubagemUnitario":0,"quantidade":200,"icmEstadoDestino":0,"mvaAjustado":0,"markup":.11},{"selected":!1,"produto":"PINK-7-103","ncm":"7117.90.00","aliqII":.18,"aliqIpi":.12,"aliqPis":.021,"aliqCofins":.0965,"descricao":"BIJOUTERIAS EM METAL/ VIDRO ","pesoUnitario":.975,"unitario":1.52,"dumping":0,"cubagemUnitario":0,"quantidade":300,"icmEstadoDestino":0,"mvaAjustado":0,"markup":.19}],});
           
            fetch('http://localhost:4242/api/v1/dis', {
                method: 'post',
                headers: {
                    'Content-Type' : 'application/json'
                },
                body: myvalue
            }).then(function(response){
                return response.json(myvalue);
            }).then(function(text){
                console.log(text);
            }).catch(function (error){
                console.error(error);
            })
            
}