使用mssql和node-sql进行更新
我正在使用mssql与node-sql一起构buildSELECT
查询,但我找不到任何示例如何使用它来构buildUPDATE查询。 我有一个对象的属性对应的表字段,我想更新所有这些。
承担:
child: sql.define({ name: 'children', columns: ['id', 'name', 'surname', 'group'] })
和:
var data = {/*new child data*/}; var query = child.update(data).where(child.id.equals(data.id)).toQuery().text;
如何在不知道data
属性的值和数量的情况下使用mssql
?
现在我有这个:
connection.query(query, [data.id, data.name, data.surname, data.group], function(err, result) { res.redirect('/index'); });
这可以通过使用lodash的values
来实现:
_.values(data);
它返回对象属性的数组,但它不能保证正确的顺序是交易断路器。
我该如何解决这个问题?
这将根据表列的顺序返回一个值的数组:
child.columns.map(function(col){return data[col.name]})
用lodash缩短上面的内容也许是可能的。
几天后,我认为node-sql的查询对象除.text属性外还具有.values属性,所以上面的update可以写成
var data = {/*new child data*/}; var query = child.update(data).where(child.id.equals(data.id)).toQuery(); connection.query(query.text, query.values, function(err, result) { res.redirect('/index'); });