Part One: Add data to database
const querystring = require("querystring")
app.post('/useradd', (req, res) => { // 'useradd' is the name of this interface, 'post' is the method of this interface
if(req.method.toUpperCase()=="POST"){
var str='';
// Deal with datas from front end
req.on("data",chunk=>{
str+=chunk;
})
req.on("end",()=>{
let newInfo = querystring.parse(str)
if(newInfo.reWritePassWord == newInfo.password) {
delete newInfo.reWritePassWord
queryFunc(newInfo, res)
} else {
queryFunc(newInfo, res, 'error')
}
})
}
})
let queryFunc = function (newInfo, res, status) {
if(status == 'error') {
res.json({ // Send datas back to front end
err_code: 1001,
err_message: '兩次輸入的密碼不相同',
affectedRows: 0
})
} else {
connection.query('INSERT INTO ' + userTable + ' SET ?', newInfo, (err, result) => { // insert data into certain table
if(err) {
res.json({
err_code: 1,
err_message: '添加失敗',
affectedRows: 0
})
} else {
res.json({
err_code: 0,
err_message: '添加成功',
affectedRows: result.affectedRows
})
}
})
}
}
$.ajax({ // Get data in front end
type: 'post',
url: 'http://localhost:3600/useradd',
data: formObj,
success: res => {
console.log('成功回調')
console.log(res)
},
error: err => {
console.log(err)
}
})
Part Two: delete data from database
app.delete('/useromit', (req, res) => {
const id = req.query.id
let queryStr
if(id.split(',').length > 1) { // Multiple deletion
queryStr = 'DELETE FROM ' + userTable + ' WHERE id in (' + id + ')'
} else { // Delete one piece of data
queryStr = 'DELETE FROM ' + userTable + ' WHERE id = ' + id
}
connection.query(queryStr, (err, result) => {
if(err) {
res.json({
err_code: 1,
err_message: err,
affectedRows: 1
})
} else {
res.json({
err_code: 0,
err_message: '刪除成功',
affectedRows: 0
})
}
})
})
$.ajax({
type: 'delete',
url: 'http://localhost:3600/useromit' + '?id=' + itemId, // Post single piece of data in front end
success: res => {
console.log('刪除成功')
console.log(res)
},
error: err => {
console.log(err)
}
})
$.ajax({
type: 'delete',
url: 'http://localhost:3600/useromit' + '?id=' + window.checkedGroup.join(','), // Post many pieces of data in front end
success: res => {
console.log('刪除成功')
console.log(res)
},
error: err => {
console.log(err)
}
})
Part Three:Update data in database
app.put('/musicUpdate', (req, res) => {
const id = req.query.id
var str='';
req.on("data",chunk=>{
str+=chunk;
})
req.on("end",()=>{
let newInfo = querystring.parse(str)
connection.query('UPDATE ' + dbTable + ' SET ' + 'singer = ' + '"' + newInfo.singer + '"' + ',title = ' + '"' + newInfo.title + '"' + ',url = ' + '"' + newInfo.url + '"' + ' WHERE id = ' + id, (err, result) => {
if(err) {
res.json({
err_code: 1,
err_message: err,
affectedRows: 1
})
} else {
res.json({
err_code: 0,
err_message: '修改成功',
affectedRows: 0
})
}
})
})
})
$.ajax({
type: 'put',
url: 'http://localhost:3600/musicUpdate' + '?id=' + window.currentId,
data: musicForm,
success: res => {
console.log('成功回調')
console.log(res)
},
error: err => {
console.log(err)
}
})
Part Four: Search data from database
connection.query('SELECT * FROM ??', [userTable], (err, data) => { // Get data list from database
if(err) {
throw err
} else {
app.get('/user', (req, res) => {
res.status(200)
res.json(data)
})
}
})
$.ajax({
type: 'get',
url: 'http://localhost:3600/user',
success: res => {
console.log('所有的用戶')
console.log(res)
let htmlString = ''
res.forEach((item, index) => {
htmlString += '<li class="demo-li-item" onClick="removeItem(' + item.id + ')">' + item.user_name + '(' + item.id + ')' + '</li>'
})
document.getElementById('users-wrapper').innerHTML = htmlString
},
error: err => {
console.log(err)
}
})
app.get('/musicDetail', (req, res) => { // Get detail about certain data
const id = req.query.id
connection.query('SELECT * FROM ' + dbTable + ' WHERE id = ' + id, (err, data) => {
if (err) {
throw err
} else {
res.status(200)
res.json(data)
}
})
})