使用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'); });