Skip to content

Commit f6674ec

Browse files
author
Tom Hudson
committed
Adds userlist to ejs-example
1 parent badf566 commit f6674ec

File tree

2 files changed

+48
-0
lines changed

2 files changed

+48
-0
lines changed

ejs-example/main.js

+23
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,29 @@ app.get('/', (req, res) => {
100100
})
101101
})
102102

103+
app.get('/api/users', async (req, res) => {
104+
105+
try {
106+
const db = client.db(dbName)
107+
const users = await db.collection('users').find({
108+
username: { $regex: '^' + req.query.q }
109+
}).toArray()
110+
111+
res.json(users.map(u => u.username))
112+
113+
} catch(err) {
114+
res.render("error", {
115+
message: "Failed to list users"
116+
})
117+
}
118+
})
119+
120+
app.get('/users', (req, res) => {
121+
res.render('users', {
122+
user: req.session.user
123+
})
124+
})
125+
103126
// Connect to mongo, and then start listening
104127
client.connect(() => {
105128
app.listen(port, () => console.log(`Example app listening on port ${port}!`))

ejs-example/views/users.ejs

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
<% include header %>
2+
3+
<h2>Userlist</h2>
4+
5+
<input type=text id=search>
6+
7+
<ul id=userlist>
8+
</ul>
9+
10+
<script>
11+
let search = document.getElementById('search')
12+
let userlist = document.getElementById('userlist')
13+
14+
search.addEventListener('keyup', async (e) => {
15+
let r = await fetch('/api/users?q='+search.value)
16+
17+
let users = await r.json()
18+
19+
userlist.innerHTML = users.map(u => {
20+
return `<li>${u}</li>`
21+
}).join('\n')
22+
23+
})
24+
25+
</script>

0 commit comments

Comments
 (0)