我很难想出在后端存储待办事项列表项目的最佳方式。我被告知在后端存储数组和对象不是一个好主意。我正在尝试克隆一个受google keep启发的web应用程序。
一些上下文:一旦用户提交了他们的待办事项列表,它就会向后端发出一个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表的TODO_ITEM表,这样当它被调用到前端并与正确的表分组时。使用我目前的设置,是否可以将引用(TODO)ID传递到TODO_ITEM表?
发布于 2018-06-01 08:32:27
所以,我想你犯了一些小错误,我不知道你是如何在后端查询的,但你必须注意到,在制作表格之前,你必须做一个connection
到你的db
soo,我认为它不会回来检查this,或者如果你在完成关于你的问题的信息之前做了,但是正确的查询是这样的:
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})
});
https://stackoverflow.com/questions/50634091
复制相似问题