gpt4 book ai didi

javascript - 使用 MassiveJS 进行 REST put/post 保存

转载 作者:行者123 更新时间:2023-11-30 15:57:18 25 4
gpt4 key购买 nike

使用当前版本的 MassiveJS 和 express 进行 API 调用。使用 SAVE 函数时,Massive 希望列名列表更新如下:

router.put('/:id', function(req, res, next) {
db.suppliers.save(
{
id: +req.params.id,
name: req.body.name,
email: req.body.email,
column1: req.body.column1,
column2: req.body.column2,
column3: req.body.column3,
manyOtherColumns: req.body.manyOtherColumns,
etc...
}, function (err, result) {
if (err) {
return next(err);
}
return res.status(200).json({
status: 'SUCCESS',
message: 'Supplier has been saved'
});
})
});

如您所见,随着列列表越来越长,这段代码变得越来越难以维护。所以我想知道是否有一种方法可以在一次调用中保存整个 req.body,假设 req.body 键值与数据库列名称匹配。这将节省大量时间并且更易于维护。

最佳答案

Massive 不是 ORM,因此保存“对象”不是这个主意。如果你想更新一些东西,你可以直接使用 db.update 并传入你想要更新的值以及行的 ID。这将为您进行部分更新。

正如我在评论中提到的,打开一个 REST 端点来更新用户通过 POST 发送的任何内容可能不是一个好主意,即使您确实信任您的用户。

最后:如果您只想传递表单帖子,您可以:

router.put('/:id', function(req, res, next) {
var supplier = {
id: req.params.id;
};
supplier = _.extend(supplier, req.params.body);
db.suppliers.save(
supplier
, function (err, result) {
if (err) {
return next(err);
}
return res.status(200).json({
status: 'SUCCESS',
message: 'Supplier has been saved'
});
})
});

关于javascript - 使用 MassiveJS 进行 REST put/post 保存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38312474/

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