-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathserver.js
More file actions
81 lines (73 loc) · 2.06 KB
/
server.js
File metadata and controls
81 lines (73 loc) · 2.06 KB
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
const express = require("express");
const app = express();
const path = require("path");
const os = require("os");
const process = require("process");
const sendFileOptions = { root: path.join(__dirname) };
const fs = require("fs");
const sqlite3=require("sqlite3").verbose();
const db = new sqlite3.Database('cities.db')
app.use(express.static("public"));
app.get("/", (req, res) => {
res.sendFile("Hello.txt", sendFileOptions, err => {
if (err) {
console.log(err);
} else {
console.log("Sent:", "Hello.txt");
}
});
});
app.get('/cities', (req, res) => {
res.set({ 'Content-Type': 'text/plain; charset=utf-8' });
const sql = 'select * from cities';
const params = [];
db.all(sql, params, (err, rows) => {
if (err) {
res.status(400).json({'error': err.message});
return;
}
if (!rows) {
res.status(204).json({'error': 'No cities found'});
return;
}
res.send(rows);
});
});
app.get('/city/:id', (req, res) => {
const sql = 'select * from cities where id = ?';
const params = [req.params.id];
db.get(sql, params, (err, row) => {
if (err) {
res.status(400).json({'error':err.message});
return;
}
if (!row) {
res.status(204).json({'error': 'City not found'});
return;
}
res.send(row);
});
});
app.get("/*.*", (req, res) => {
var script_name = req.url.replace("/", "");
if (fs.existsSync(script_name)) {
console.log("Sent:", req.headers.referer);
res.sendFile(script_name, sendFileOptions, err => {
if (err) {
console.log(err);
} else {
console.log("Sent:", script_name);
}
});
} else {
res.status(404).sendFile(__dirname + '/404.html');
}
});
app.use(function(req, res) {
//res.status(404).send('404: Page not found');
res.status(404).sendFile(__dirname + '/404.html');
});
app.listen(process.env.PORT, err => {
if (err) console.log(err);
console.log("Server listening on", os.hostname + ":" + process.env.PORT);
});