database - NodeJS 中模型的可选更改

标签 database node.js postgresql sequelize.js

我将 Nodejs 与 Sequelizejs 一起使用,但我想这个问题可能适用于其他情况。

一个对象进入我的方法,它有一些属性试图更新我从数据库中提取的模型(如果我找到匹配)。

var changes = {
   firstName: "foo",
   loginPin: 0000
}

该模型包含更多属性,但为了便于讨论,这里仅举一个示例。
var existingEmployeeModel = {
    firstName: "bar",
    middleInitial: "f",
    loginPin: 1111,
    email: "foo@bar.com"
}

所以现在我基本上是这样处理的:
if (changes.firstName) existingEmployeeModel.firstName = changes.firstName;

有一个更好的方法吗?有时我可能会使用 .trim() 等,但我无法想象这是理想的。

最佳答案

例如, lodash apply http://lodash.com/docs#assign 函数做了类似的事情。只需按如下方式调用它:

_.assign(existingEmployeeModel, changes);

它应该将 changes 中的所有属性复制到模型中。

如果你不想添加依赖,你可以使用这个:
function apply(model, changes) {
  Object.keys(changes).forEach(function (key) {
    if ('string' === typeof changes[key]) {
      model[key] = changes[key].trim();
    } else {
      model[key] = changes[key];
    }
  });
}

完毕。

关于database - NodeJS 中模型的可选更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24297010/

相关文章:

javascript - 如何将express-fileupload 创建的缓冲区保存到文件中?

sql - 如何在一行中获取 postgreSQL 中的 2 个最新值?

sql - 聚合返回 * 作为数组

php - 无法连接mysql

PHP 使用数据库中的 TIME 来计算小时数

sql - 如何创建一个表示字段不等于 X 的联接?

node.js - 使用 Node.js 和 Express 进行 Http Post

node.js - Mongodb $ 并且无法正常工作

ruby-on-rails - Postgresql 与 Ruby on Rails

database - 在 VB.Net 2010 中读取/写入 Access 数据库