Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const express = require("express");
- const app = express();
- const morgan = require("morgan");
- const bodyParser = require("body-parser");
- const mongoose = require("mongoose");
- const productRoutes = require("./api/routes/products");
- mongoose.connect('',
- (err)=>{
- if(err){console.log(err)}
- else{console.log('DB Connected')}
- })
- mongoose.Promise = global.Promise;
- app.use(morgan("dev"));
- app.use('/uploads', express.static('uploads'));
- app.use(bodyParser.urlencoded({ extended: false }));
- app.use(bodyParser.json());
- app.use((req, res, next) => {
- res.header("Access-Control-Allow-Origin", "*");
- res.header(
- "Access-Control-Allow-Headers",
- "Origin, X-Requested-With, Content-Type, Accept, Authorization"
- );
- if (req.method === "OPTIONS") {
- res.header("Access-Control-Allow-Methods", "PUT, POST, PATCH, DELETE, GET");
- return res.status(200).json({});
- }
- next();
- });
- // Routes which should handle requests
- app.use("/products", productRoutes);
- app.use((req, res, next) => {
- const error = new Error("Not found");
- error.status = 404;
- next(error);
- });
- app.use((error, req, res, next) => {
- res.status(error.status || 500);
- res.json({
- error: {
- message: error.message
- }
- });
- });
- module.exports = app;
- const express = require("express");
- const router = express.Router();
- const mongoose = require("mongoose");
- const multer = require('multer');
- const storage = multer.diskStorage({
- destination: function(req, file, cb) {
- cb(null, './uploads/');
- },
- filename: function(req, file, cb) {
- cb(null, new Date().toISOString() + file.originalname);
- }
- });
- const fileFilter = (req, file, cb) => {
- // reject a file
- if (file.mimetype === 'image/jpeg' || file.mimetype === 'image/png') {
- cb(null, true);
- } else {
- cb(null, false);
- }
- };
- const upload = multer({
- storage: storage,
- limits: {
- fileSize: 1024 * 1024 * 5
- },
- fileFilter: fileFilter
- });
- router.post("/", checkAuth, upload.single('productImage'), (req, res, next) => {
- const product = new Product({
- _id: new mongoose.Types.ObjectId(),
- name: req.body.name,
- price: req.body.price,
- productImage: req.file.path
- });
- product
- .save()
- .then(result => {
- console.log(result);
- res.status(201).json({
- message: "Created product successfully",
- createdProduct: {
- name: result.name,
- price: result.price,
- _id: result._id,
- request: {
- type: 'GET',
- url: "http://localhost:3000/products/" + result._id
- }
- }
- });
- })
- .catch(err => {
- console.log(err);
- res.status(500).json({
- error: err
- });
- });
- });
- module.exports = router;
Add Comment
Please, Sign In to add comment