Guest User

Untitled

a guest
Jan 24th, 2018
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.68 KB | None | 0 0
  1. const express = require("express");
  2. const app = express();
  3. const morgan = require("morgan");
  4. const bodyParser = require("body-parser");
  5. const mongoose = require("mongoose");
  6.  
  7. const productRoutes = require("./api/routes/products");
  8.  
  9. mongoose.connect('',
  10. (err)=>{
  11. if(err){console.log(err)}
  12. else{console.log('DB Connected')}
  13. })
  14. mongoose.Promise = global.Promise;
  15.  
  16. app.use(morgan("dev"));
  17. app.use('/uploads', express.static('uploads'));
  18. app.use(bodyParser.urlencoded({ extended: false }));
  19. app.use(bodyParser.json());
  20.  
  21. app.use((req, res, next) => {
  22. res.header("Access-Control-Allow-Origin", "*");
  23. res.header(
  24. "Access-Control-Allow-Headers",
  25. "Origin, X-Requested-With, Content-Type, Accept, Authorization"
  26. );
  27. if (req.method === "OPTIONS") {
  28. res.header("Access-Control-Allow-Methods", "PUT, POST, PATCH, DELETE, GET");
  29. return res.status(200).json({});
  30. }
  31. next();
  32. });
  33.  
  34. // Routes which should handle requests
  35. app.use("/products", productRoutes);
  36.  
  37. app.use((req, res, next) => {
  38. const error = new Error("Not found");
  39. error.status = 404;
  40. next(error);
  41. });
  42.  
  43. app.use((error, req, res, next) => {
  44. res.status(error.status || 500);
  45. res.json({
  46. error: {
  47. message: error.message
  48. }
  49. });
  50. });
  51.  
  52. module.exports = app;
  53.  
  54. const express = require("express");
  55. const router = express.Router();
  56. const mongoose = require("mongoose");
  57. const multer = require('multer');
  58.  
  59. const storage = multer.diskStorage({
  60. destination: function(req, file, cb) {
  61. cb(null, './uploads/');
  62. },
  63. filename: function(req, file, cb) {
  64. cb(null, new Date().toISOString() + file.originalname);
  65. }
  66. });
  67.  
  68. const fileFilter = (req, file, cb) => {
  69. // reject a file
  70. if (file.mimetype === 'image/jpeg' || file.mimetype === 'image/png') {
  71. cb(null, true);
  72. } else {
  73. cb(null, false);
  74. }
  75. };
  76.  
  77. const upload = multer({
  78. storage: storage,
  79. limits: {
  80. fileSize: 1024 * 1024 * 5
  81. },
  82. fileFilter: fileFilter
  83. });
  84.  
  85. router.post("/", checkAuth, upload.single('productImage'), (req, res, next) => {
  86. const product = new Product({
  87. _id: new mongoose.Types.ObjectId(),
  88. name: req.body.name,
  89. price: req.body.price,
  90. productImage: req.file.path
  91. });
  92. product
  93. .save()
  94. .then(result => {
  95. console.log(result);
  96. res.status(201).json({
  97. message: "Created product successfully",
  98. createdProduct: {
  99. name: result.name,
  100. price: result.price,
  101. _id: result._id,
  102. request: {
  103. type: 'GET',
  104. url: "http://localhost:3000/products/" + result._id
  105. }
  106. }
  107. });
  108. })
  109. .catch(err => {
  110. console.log(err);
  111. res.status(500).json({
  112. error: err
  113. });
  114. });
  115. });
  116.  
  117. module.exports = router;
Add Comment
Please, Sign In to add comment