在后端保存待办事项列表项

时间:2018-05-31 23:17:12

标签: sql node.js reactjs express

我很难想出在后端存储待办事项列表项的最佳方法。我被告知在后端存储数组和对象不是一个好主意。我正在尝试克隆一个谷歌保持灵感的网络应用程序。

某些上下文:一旦用户提交了他们的待办事项列表,它就会对后端进行axios调用,后者将遍历一系列待办事项列表项并将它们单独保存到后端。

这激发了我目前的设置。

CREATE TABLE TODO (
ID SERIAL PRIMARY KEY,
title VARCHAR,
user_id INTEGER REFERENCES users(ID));



CREATE TABLE TODO_ITEM (
ID SERIAL PRIMARY KEY,
item VARCHAR,
complete BOOLEAN,
todo_list_id INTEGER REFERENCES TODO(id)); 

我对前端的前端呼叫看起来像这样

 toDoArray.map(ele => { 
            axios.post('users/postToDoListItems', {
                item: ele, 
                complete: false,
                todo_list_id: ?

            })
        })
        axios.post('users/postToDoList', {
            title: title,
            toDoList: toDoList
        })
    }

TODO_ITEM表我想引用我的TODO表,这样当它被调用到前端并与正确的表分组时。 使用我当前的设置,是否可以将引用(TODO)ID传递给TODO_ITEM表?

1 个答案:

答案 0 :(得分:0)

所以aaaww我认为你犯了一些小错误我不知道你如何在你的后端查询但是你必须注意到在制作你的桌子之前你必须connection给你的db soo i认为它不回来检查this 或者如果你在plz之前完成了关于你的问题的信息,但正确的查询是这样的:

var mysql      = require('mysql');
var connection = mysql.createConnection({
  host     : 'localhost',
  user     : 'me',
  password : 'secret',
  database : 'my_db'
});

connection.connect();

connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {
  if (error) throw error;
  console.log('The solution is: ', results[0].solution);
});

connection.end();

并且对于来自前端的查询,您应该这样做:

<< fron-end >>

 axios.post('users/postToDoListItems', {
                item: ele, 
                complete: false,
                todo_list_id: 1

            })

<< back-end >>

route : postToDoListItems

connection.query(`SET complete = ${req.body.complete} FROM todo WHERE id =${req.body.id}`, function (error, results, fields) {
      if (error) throw error;
      res.json({results,fields})
    });