【问题标题】:Vuejs app simple fetch post only insert the _id and not the jsonVuejs app simple fetch post 只插入 _id 而不是 json
【发布时间】:2020-08-15 05:26:08
【问题描述】:

我有一个带有 Vue.js 的应用程序,在一个方法中我创建了一个简单的 fetch 以发布到我的 API,但只有 _id 保存在我的 mongodb 中。

我在 Vuejs 应用程序中的方法(我用 json 创建了一个变量来测试我的 fetch 帖子):

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 中的路线(我在 mongoDB 中使用 express、morgan、joi、helmet、cors、bodyParse)

// 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);
    }
}); 

当我尝试使用Isominia(或邮递员)发布相同的 json 数据时,该帖子工作正常,但我的 fecth 发布请求仅生成 _id,并且不发布我想要的所有数据。

控制台中的 Fetch Post 返回:

{_id: "5f376d6edd37760c6632c8ab"}

【问题讨论】:

    标签: javascript node.js vue.js post fetch


    【解决方案1】:

    完全忘记您需要在 fetch POST request 中指定headers 以将json 传递给您的API 并使用JSON.stringuify 方法传递给变量,因此,在我的Fetch 中传递标头的代码是:

    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);
                })
                
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多