使用Express无法构建第一个Mean Stack应用程序-Nodemon

时间:2019-12-27 21:09:37

标签: javascript node.js mongodb express nodemon

我正在遵循openclassroom上的课程来使用Express构建我的第一个全栈应用程序。开始优化app.js代码后,Nodemon应用程序崩溃。当我将所有中间件移到一个单独的文件中后,Nodemon服务器继续崩溃.....

这是我的app.js代码

const express = require('express');

const bodyParser = require('body-parser');

const mongoose = require('mongoose');

const app = express();

const stuffRoutes = require('./routes/stuff');

// Cross Origin Resource Sharing
app.use((req, res, next) => {
    res.setHeader('Access-Control-Allow-Origin', '*');
    res.setHeader('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content, Accept, Content-Type, Authorization');
    res.setHeader('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, PATCH, OPTIONS');
    next();
});

// Conection to MongoDB Atlas!
mongoose.connect('mongodb+srv://USERNAME:PASSWORD@cluster0-wns5r.mongodb.net/test?retryWrites=true&w=majority')
    .then(() => {
        console.log('Successfully connected to MongoDB Atlas!');
    })
    .catch((error) => {
        console.log('Unable to connect to MongoDB Atlas!');
        console.error(error);
    });




 // Body Parser for structuring schematic data for our DB
app.use(bodyParser.json());

app.use('/api/stuff', stuffRoutes);




module.exports = app;

这是我在StuffRoutes中的中间件-/ routes / stuff

const express = require('express');
const router = express.Router();



const Thing = require('../models/thing');

router.post('/', (req, res, next) => {
  const thing = new Thing({
    title: req.body.title,
    description: req.body.description,
    imageUrl: req.body.imageUrl,
    price: req.body.price,
    userId: req.body.userId
  });
  thing.save().then(
    () => {
      res.status(201).json({
        message: 'Post saved successfully!'
      });
    }
  ).catch(
    (error) => {
      res.status(400).json({
        error: error
      });
    }
  );
});

router.get('/:id', (req, res, next) => {
  Thing.findOne({
    _id: req.params.id
  }).then(
    (thing) => {
      res.status(200).json(thing);
    }
  ).catch(
    (error) => {
      res.status(404).json({
        error: error
      });
    }
  );
});

router.put('/:id', (req, res, next) => {
  const thing = new Thing({
    _id: req.params.id,
    title: req.body.title,
    description: req.body.description,
    imageUrl: req.body.imageUrl,
    price: req.body.price,
    userId: req.body.userId
  });
  Thing.updateOne({_id: req.params.id}, thing).then(
    () => {
      res.status(201).json({
        message: 'Thing updated successfully!'
      });
    }
  ).catch(
    (error) => {
      res.status(400).json({
        error: error
      });
    }
  );
});

router.delete('/:id', (req, res, next) => {
  Thing.deleteOne({_id: req.params.id}).then(
    () => {
      res.status(200).json({
        message: 'Deleted!'
      });
    }
  ).catch(
    (error) => {
      res.status(400).json({
        error: error
      });
    }
  );
});

router.get('/' +
  '', (req, res, next) => {
  Thing.find().then(
    (things) => {
      res.status(200).json(things);
    }
  ).catch(
    (error) => {
      res.status(400).json({
        error: error
      });
    }
  );
});



module.exports = router;

启动服务器时从命令行显示错误消息

[nodemon] restarting due to changes...
[nodemon] starting `node server.js`
C:\Users\Agabus\WEB_Project\DevC\EN_5614116_go-full-stack-with-node-js-express-and-mongodb\Go-full-stack-MEAN\backender\routes\stuff.js:1
��c


SyntaxError: Invalid or unexpected token
    at Module._compile (internal/modules/cjs/loader.js:703:23)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:770:10)
    at Module.load (internal/modules/cjs/loader.js:628:32)
    at Function.Module._load (internal/modules/cjs/loader.js:555:12)
    at Module.require (internal/modules/cjs/loader.js:666:19)
    at require (internal/modules/cjs/helpers.js:16:16)
    at Object.<anonymous> (C:\Users\Agabus\WEB_Project\DevC\EN_5614116_go-full-stack-with-node-js-express-and-mongodb\Go-full-stack-MEAN\backender\app.js:9:21)
    at Module._compile (internal/modules/cjs/loader.js:759:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:770:10)
    at Module.load (internal/modules/cjs/loader.js:628:32)
    at Function.Module._load (internal/modules/cjs/loader.js:555:12)
    at Module.require (internal/modules/cjs/loader.js:666:19)
    at require (internal/modules/cjs/helpers.js:16:16)
    at Object.<anonymous> (C:\Users\Agabus\WEB_Project\DevC\EN_5614116_go-full-stack-with-node-js-express-and-mongodb\Go-full-stack-MEAN\backender\server.js:2:13)
    at Module._compile (internal/modules/cjs/loader.js:759:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:770:10)
[nodemon] app crashed - waiting for file changes before starting...

0 个答案:

没有答案