设置Todo列表服务器

时间:2016-12-07 18:27:34

标签: javascript node.js server

我是Javascript,Node.js和JSON的新手。我应该构建某种Todo列表应用程序,用户将其todo发送到服务器。我已经创建了HTML和Javascript来执行没有服务器的基本操作。

我正在使用以下程序/语言来完成我的任务:

  • Vagrant(各种NPM模块)
  • VirtualBox的
  • Javascript(jQuery)

目前我正在尝试通过以下代码行发送数据:

    //Create (simplified) "task"
    item["id"] = task.dataset.id;
    item["taskname"] = task.dataset.taskname;
    item = JSON.stringify(item);

    //Send code
    $.ajax({
            url: '/addtodo',
            type: 'post',
            dataType: 'json',
            success: function (data) {
                console.log(data);
            },
            data: item 
    });

在接收方,我尝试使用以下代码行接收数据:

app.post("/addtodo", function (req, res) {
    var newTodo = req.body;

    fs.writeFile("Somefile.json",  JSON.parse(newTodo), function(err) {
        if(err) {
            res.json({"message":"Storing data failed"});
        } else {
            res.json({"message":"Data stored successfully"});
       }
    });
 });

我的目标是在“Somefile.json”中获得类似的内容

[{
        "id"    : 2,
        "taskname"  : "Example task 2",
    },
{
        "id"    : 2,
        "taskname"  : "Example task 2",
    },
]

现在我得到错误或者将Somefile.json更改为[object Object]。 任何人都在乎解释我做错了什么以及我应该如何解决它

编辑: 如果我不使用JSON.parse,我会得到:[object Object]

如果我使用JSON.stringify,我会得到{"{\"id\":\"6\",\"taskname\":\"1234\"}":""}

1 个答案:

答案 0 :(得分:0)

而不是

JSON.parse(newToDo);

使用

JSON.stringify(newToDo);

此函数会将对象转换为字符串,并为您提供所需的输出。