如何创建使用(js / node / express)将数组追加到json值

时间:2017-06-12 15:17:23

标签: javascript json node.js

快速概述是使用NodeJs(我正在学习),我正在尝试重新创建一个CRUD应用程序,我使用php / mysql等,它获取用户表单信息并将其存储在一个名为“样品-data.json”。

基本上,使用NodeJs用户填写表单,前端JS获取该信息,将其传递到我设置的api路由,然后使用FS,将该信息写入sample-data.json文件等

至于我的尝试和一些代码(下面),一旦用户点击表单上的提交,下面的代码将获取该信息,并将其传递给“sampledataapi”路径。

$("#createTodoForm").submit(function(evt){
            evt.preventDefault();

            $.post("/sampledataapi",{
                todoCompany : $("#todoTitle").val(), 
                thisTodoIsFor : $("#todoIsFor").val(),  
                todoPostedBy : $("#todoPostedBy").val(), 
                todoCompleted : $("#todoCompleted").val(), 
                todoPriority : $("#todoPriority").val(), 
                todoMessages : $("#todoFirstMessage").val()
            }, showDataGotten );

        }); 

保存数据后,我的sample-data.json文件最初在其中有一个空数组,然后填充信息。

因此sample-data.json来自:[]

对此(输入数据后):

[
    {
        "todoCompany":"sample company",
        "thisTodoIsFor":"todo is for me",
        "todoPostedBy":"admin",
        "todoCompleted":"no",
        "todoPriority":"green",
        "todoMessages" : "sample message"
    }
]

现在,当我这样做时,一切正常,但我遇到的问题是,我想让“todoMessages”成为一个数组。原因是因为一旦用户发布他们的数据,他们就能够从该块中删除/添加消息。

所以我需要的是,当用户提交数据时,而不是“todoMessages”是一个常规字符串,我希望它像这样

"todoMessages" : [ "sample message" ]

这样,我可以将信息输入或删除等。 我怎样才能做到这一点,当用户创建他的数据,并且数据将信息传递给route / json文件时,它会自动创建todoMessages作为数组?

修改 作为提到的评论者之一,我尝试过(在前端)

todoMessages : [$("#todoFirstMessage").val()]

然后前端读取“undefined” 后端json有这个:

"todoMessages[]":"sample message"

我已经在这一天或者三天了,我完全陷入困境。 非常感谢大家的帮助。

0 个答案:

没有答案