gpt4 book ai didi

javascript - 如何使用 typicode/lowdb 文件数据库更新项目数组?

转载 作者:搜寻专家 更新时间:2023-10-30 21:37:48 25 4
gpt4 key购买 nike

您好,我正在测试一个使用 typicode/lowdb json 文件作为数据库的 express 应用程序,但我无法使用更新功能。这是一些代码示例:

typicode/lowdb db.json

{
"posts": [
{
"name": "first post",
"desc": "first desc",
"slug": "first-post",
"id": "uuid.v4()"
},
{
"name": "second post",
"desc": "second desc",
"slug": "second-post",
"id": "uuid.v4()"
}
]
}

创建/更新/删除.js

var uuid = require('node-uuid');
var low = require('lowdb');
var storage = require('lowdb/file-async');
var db = low('./database/db.json',{ storage: storage });

var add = function (item) {
var id = uuid.v4();
item.id = id;
db('posts').push(item);
};

var getById = function (id) {
return db('posts').find({ id: id});
};

var update = function (item,id) {
item.id = id;
db('posts').chain().find({ id: id}).assign(item).value();
//nothing happens the db.json file is not updated

//using console log i get this from update:
{
"name": "first post edited",
"desc": "first desc edited",
"slug": "first-post-edited",
"id": "undifined"
}
console.log(db('posts').chain().find({ id: id}).assign(item).value());

};

handle-the-update.js 示例

 exports.update = router.post('/update',function (req, res) {

db.update({name:req.body.name,desc:req.body.desc,slug:slug,id:req.params.id});
res.redirect('/post');
});

create delete 和 get the post by-id 函数工作正常,唯一的问题是更新。知道为什么会这样吗?我测试了 .filter() , .where() 但没有任何作用 db.json 文件不更新

最佳答案

根据 lowdb 指南,您必须调用 write() 方法。所以替换你的字符串:

db('posts').chain().find({ id: id}).assign(item).value();

收件人:

db('posts').chain().find({ id: id}).assign(item).write();

关于javascript - 如何使用 typicode/lowdb 文件数据库更新项目数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35329280/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com