Skip to content

Instantly share code, notes, and snippets.

@niamurrell
Created December 14, 2017 05:00
Show Gist options
  • Save niamurrell/e26e7caaaacf894227fc2053bdf923e1 to your computer and use it in GitHub Desktop.
Save niamurrell/e26e7caaaacf894227fc2053bdf923e1 to your computer and use it in GitHub Desktop.
Runs a Node.js server which stores/retrieves data in txt file based on URL params
var http = require("http");
var url = require("url");
var fs = require("fs");
var db = {};
var handleRequest = function(req, res) {
res.writeHead(200, {"Content-Type": "text/plain"});
console.log("Request was made to URL: " + req.url);
// Get URL params
var parsedUrl = url.parse(req.url, true);
var pathname = parsedUrl.pathname;
var query = parsedUrl.query;
var key = query.key;
var resMessage = "Proper URL params: '/set?somekey=somevalue' OR '/get?key=somekey'";
// Handle routes
if (pathname === "/set") { // SET sends params to a txt file
db = Object.assign(db, query);
fs.writeFile("db.txt", JSON.stringify(db), function() {
console.log("Database contents:");
console.log(db);
});
resMessage = "You have stored " + JSON.stringify(query) + " in memory.";
res.end(resMessage);
} else if (pathname === "/get") { // GET finds params from a txt file
fs.readFile("db.txt", "utf8", function(err, data) {
if (err) throw err;
var value = JSON.parse(data)[key];
resMessage = "The value of '" + key + "' is: " + value;
res.end(resMessage);
});
} else {
res.end(resMessage);
}
}
// Run server
http.createServer(handleRequest).listen(4000, function() {
console.log("App running on port 4000");
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment