从零开始学习Node.js系列教程之SQLite3和MongoDB用法分析

2020-06-17 07:03:16易采站长站整理

});
app.get('/del', parseUrlParams, function(req, res){
notesdb.delete(req.urlP.query.id,
function(error){
if (error) throw error;
res.redirect('/view');
});
});
app.get('/edit', parseUrlParams, function(req, res){
notesdb.findNoteById(req.urlP.query.id,
function(error, note){
if (error) throw error;
res.render('addedit.html',
{title: "Notes ("+ nmDbEngine +")", postpath: '/edit', note: note});
});
});
app.post('/edit', function(req, res){
notesdb.edit(req.body.id, req.body.author, req.body.note,
function(error){
if (error) throw error;
res.redirect('/view');
});
});
app.get('/login', function(req, res){
res.render('login.html', {title: "Notes LOGIN ("+ nmDbEngine +")"});
});
app.post('/login', function(req, res){
//此处可以添加检查用户信息的逻辑
//...
res.cookie('notesaccess', 'AOK');
res.redirect('/view');
});
app.listen(3000);

show.js


//控制台显示
var util = require('util');
var notesdb = require('./notesdb-sqlite3');
// var notesdb = require('./notesdb-mongoose');
notesdb.connect(function(error){
if (error) throw error;
});
notesdb.forAll(function(error, row){
util.log('ROW: ' + util.inspect(row));
}, function(error){
if (error) throw error;
util.log('ALL DONE');
notesdb.disconnect(function(err){});
});

前台页面在views-sqlite3目录下

layout.html


<!DOCTYPE html>
<html>
<head>
<title><%= title%></title>
</head>
<body>
<h1><%= title%></h1>
<p><a href='/view'>View</a> | <a href='/add'>Add</a></p>
</body>
</html>

viewnotes.html


<% include layout.html %>
<table><% notes.forEach(function(note){ %>
<tr>
<td>
<p><%=new Date(note.ts).toString()%>: by <b><%=note.author%></b></p>
<p><%=note.note%></p>
</td>
<td>
<form method="get" action="/del">
<input type="submit" value="Delete" />
<input type="hidden" name="id" value="<%=note.ts%>" />
</form>
<br/>
<form method="get" action="/edit">
<input type="submit" value="Edit" />
<input type="hidden" name="id" value="<%=note.ts%>" />
</form>
</td>
</tr>
<% }); %>
</table>