我正在遵循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...