我正在使用 Node.js 和 mongoose 現在我被困在這里:這個想法是創建一個旅游,我用郵遞員測驗了它,但我無法從 req.body 得到任何東西。我已經嘗試過 body-parser,但更近一步不起作用,這是怎么回事?
包.json
{
"name": "user-tour",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"start": "nodemon server.js"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"body-parser": "^1.19.0",
"dotenv": "^10.0.0",
"express": "^4.17.1",
"mongoose": "^6.1.0",
"morgan": "^1.10.0"
}
}
游覽模式
const mongoose = require('mongoose');
const tourSchema = new mongoose.Schema({
name : {
type: String,
required :[true,"A tour must have a name"],
},
rating :{
type:Number,
default : 4.5
},
price : {
type : Number,
required:[true,"A tour must have aprice"]
}
});
const Tour = mongoose.model('Tour',tourSchema);
TourController:在這里,我使用 req.body 。它假設從客戶端獲取資訊,但是,它沒有得到任何東西。說,名稱,prcie 等是空的..我不知道發生了什么..請幫忙!!
exports.createTour = async(req, res) => {
try {
const newTour = await Tour.create(req.body);
res.status(201).json({
status:"success",
data:{
newTour
}
})
} catch (error) {
res.status(400).json({
status:'fail',
message : error.message
});
}
};
應用程式.js:
const express = require('express');
const path = require('path');
const app = express();
const morgan = require('morgan');
const tourRoute = require('./routes/tourRouts');
const userRoute = require('./routes/userRoutes');
app.use(morgan('dev'));
app.use('/api/v1/tours',tourRoute);
app.use('/api/v1/users',userRoute);
app.use(express.static(path.join(__dirname, 'public')));
module.exports = app;
服務器.js
const app = require('./app');
const dotenv = require('dotenv');
const mongoose = require('mongoose');
dotenv.config();
const port = process.env.PORT ||3000;
mongoose.connect(process.env.MONGO_URL,{ useNewUrlParser: true ,useUnifiedTopology: true})
.then(()=>console.log("connecting mongoDB"))
.catch(err => console.error("error :",err));
app.listen(port,()=>{
console.log('Backend server is running!');
});
順便說一下,我正在遵循 MVC 規則..
uj5u.com熱心網友回復:
在 app.js 中,以下更改將完成這項作業。
const express = require('express');
const path = require('path');
const app = express();
var bodyParser = require('body-parser'); //added
const morgan = require('morgan');
const tourRoute = require('./routes/tourRouts');
const userRoute = require('./routes/userRoutes');
// parse application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({ extended: false }))
// parse application/json
app.use(bodyParser.json())
app.use(morgan('dev'));
app.use('/api/v1/tours',tourRoute);
app.use('/api/v1/users',userRoute);
app.use(express.static(path.join(__dirname, 'public')));
module.exports = app;
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/376542.html
上一篇:用資料填充行MongoDB
