簡體   English   中英

使用 mssql 和 node-sql 更新

[英]Using mssql and node-sql to UPDATE

我正在使用mssqlnode-sql來構建SELECT查詢,但我找不到任何如何使用它來構建 UPDATE 查詢的示例。 我有一個對象,其中的屬性對應於表字段,我想更新所有這些屬性。

認為:

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 屬性,所以上面的更新可以寫成

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM