Guest User

Untitled

a guest
Jan 23rd, 2019
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.23 KB | None | 0 0
  1. const express = require("express");
  2. const cors = require("cors");
  3. const path = require('path');
  4. const bodyParser = require("body-parser");
  5. const mongodb = require("mongodb");
  6.  
  7.  
  8. const app = express();
  9.  
  10. app.use(express.static(path.join(__dirname, 'build')));
  11.  
  12. app
  13. .use(bodyParser.json())
  14. .use(cors()).get("/api/test", function (req, res){
  15. res.send('hello');
  16. });
  17.  
  18. var db;
  19. mongodb.MongoClient.connect(process.env.MONGODB_URI, function (err, client) {
  20. if (err) {
  21. console.log(err);
  22. process.exit(1);
  23. }
  24. db = client.db();
  25. console.log("Database connection ready");
  26. const server = app.listen(process.env.PORT || 8080, function () {
  27. const port = server.address().port;
  28. console.log("App running on port:", port);
  29. });
  30. });
  31. function handleError(res, reason, message, code) {
  32. console.log("ERROR: " + reason);
  33. res.status(code || 500).json({ "error": message });
  34. }
  35.  
  36. app.get("/api/posts", function (req, res) {
  37. db.collection("posts").find({}).sort({_id:-1}).toArray(function (err, docs) {
  38. if (err) {
  39. handleError(res, err.message, "Failed to get posts.");
  40. } else {
  41. res.status(200).json(docs);
  42. }
  43. });
  44. });
  45. app.post("/api/posts", function (req, res) {
  46. var newPost = req.body;
  47. newPost.createDate = new Date();
  48. if (!req.body.content) {
  49. handleError(res, "Invalid input", "Must provide post content.", 400);
  50. } else {
  51. db.collection("posts").insertOne(newPost, function (err, doc) {
  52. if (err) {
  53. handleError(res, err.message, "Failed to create new post.");
  54. } else {
  55. res.status(201).json(doc.ops[0]);
  56. }
  57. });
  58. }
  59. });
  60. app.get("/api/posts/:id", function (req, res) {
  61. db.collection("posts").findOne({ _id: new mongodb.ObjectID(req.params.id) }, function (err, doc) {
  62. if (err) {
  63. handleError(res, err.message, "Failed to get post");
  64. } else {
  65. res.status(200).json(doc);
  66. }
  67. });
  68. });
  69. app.delete("/api/posts/:id", function(req, res) {
  70. db.collection("posts").deleteOne({_id: new mongodb.ObjectID(req.params.id)}, function(err, result) {
  71. if (err) {
  72. handleError(res, err.message, "Failed to delete post");
  73. } else {
  74. res.status(200).json(req.params.id);
  75. }
  76. });
  77. });
  78.  
  79. app.get("*", function (req, res) {
  80. res.sendFile(path.join(__dirname + "build/index.html"));
  81. });
Add Comment
Please, Sign In to add comment