Node.js 學習第二十八天
27 天跟 28 天寫在一起發送。
如果在看的過程中有任何錯誤歡迎寫 E-MAIL: pp840405@gmail.com 提醒我錯誤。
RESTful API todolist - Client AJAX
現在寫一支 JS 檔案去操控資料庫的資料
在 index.ejs 上增加 dataset
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<body>
<h1>代辦事項</h1>
<input type="text" name="content" id="content">
<input type="submit" id="send" value="儲存">
<ul id = "list">
<% for(itme in todoslist){ %>
<li><%- todoslist[itme].content %> <input type="button" data-id="<%- itme %>" value="刪除"></li>
<% } %>
</ul>
<script src="/js/all.js"></script>
</body>開啟先前新增的 all.js 檔案,做新增顯示
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27var send = document.getElementById('send');
var content = document.getElementById('content');
var list = document.getElementById('list');
send.addEventListener('click',function(e){
//撈輸入框的值
var str = content.value;
var xhr = new XMLHttpRequest();
xhr.open('post',"/addTodo");
xhr.setRequestHeader('Content-type','application/json');
//寫content是要把資料丟到req.body.content裡面
var todo = JSON.stringify({'content':str});
xhr.send(todo);
xhr.onload = function(){
var origindata = JSON.parse(xhr.responseText);
if(origindata.success == false){
alert(origindata.message)
return;
}
var data = origindata.result;
var str = ''
for(itme in data){
str += '<li>'+data[itme].content+'<input type="button" data-set="'+itme+'" value="刪除"></li>'
}
list.innerHTML = str;
}
});增加刪除邏輯
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21list.addEventListener('click',function(e){
if(e.target.nodeName !== "INPUT"){
return;
}
//
var id = e.target.dataset.id;
var xhr = new XMLHttpRequest();
xhr('post','/removeTodo');
xhr.setRequestHeader('Content-type','application/json');
var removeTodo = JSON.stringify({'id':id});
xhr.send(removeTodo);
xhr.onload = function(){
var origindata = JSON.parse(xhr.responseText);
var data = origindata.result;
var str = ''
for(itme in data){
str += '<li>'+data[itme].content+'<input type="button" data-set="'+itme+'" value="刪除"></li>'
}
list.innerHTML = str;
}
})
結語
這章 express + firebase 結合的就到這邊了,有任何問題歡迎寫 MAIL: pp840405@gmail.com 一起共同討論。