在本教學中,您將學習如何從node.js應用程式刪除MySQL資料庫中的資料。
要從node.js應用程式刪除資料,請使用以下步驟:
Connection
物件上呼叫query()
方法來執行DELETE語句。要連線到MySQL資料庫,我們將使用以下config.js
模組,其中包含MySQL資料庫伺服器的必要資訊,包括主機,使用者,密碼和資料庫。
let config = {
host : 'localhost',
user : 'root',
password: '123456',
database: 'todoapp'
};
module.exports = config;
您需要更改這些值以適應MySQL資料庫伺服器的引數。
以下delete.js程式根據行的id
刪除todos
表中的一行。
let mysql = require('mysql');
let config = require('./config.js');
let connection = mysql.createConnection(config);
// DELETE statment
let sql = `DELETE FROM todos WHERE id = ?`;
// delete a row with id 1
connection.query(sql, 1, (error, results, fields) => {
if (error)
return console.error(error.message);
console.log('Deleted Row(s):', results.affectedRows);
});
connection.end();
在這個例子中,我們在DELETE
語句中使用了一個預留位置(?
)。 當我們在connection
物件上呼叫query()
方法來執行語句時,將資料作為第二個引數傳遞給DELETE
語句。 預留位置將被輸入值代替,所以當執行查詢時,id
將取值為1
。
DELETE FROM todos WHERE id = 1
請注意,如果您有多個預留位置,則需要將陣列傳遞給查詢以將資料傳遞到SQL語句。
要獲取刪除的行數,可以存取results
引數的affectedRows
屬性。
在執行程式之前,請先檢查todos
表中id
為1
的行,執行上面範例程式碼如下 -
F:\worksp\mysql\nodejs\nodejs-connect>node delete.js
openssl config failed: error:02001003:system library:fopen:No such process
Deleted Row(s): 1
刪除ID
為1
的行記錄,您可以使用以下SELECT語句在資料庫中進行驗證:
mysql> SELECT * FROM todos WHERE id = 1;
Empty set (0.00 sec)
如您所見,ID
為1
的行記錄已從todos
表中刪除。
在本教學中,您已經學會了如何從node.js應用程式中刪除MySQL中的資料。