GET 请求无法从数据库中检索数据
GET request is not working to retrieve data from the db
我是 node.js 的新手,我正在编写一个 GET 请求以从我的数据库中检索文档。这是我的请求的定义(在 users.js
中)-
router.get('/', function (req, res, next) {
Booking.find({} ,(err,prevBookings)=>{
if(err) {
res.status(400).send('No previous bookings found.');
}
if(prevBookings[0]) {
res.status(200).send(prevBookings);
}
else{
console.log("no records")
res.status(200).send("No previous bookings found.")
}
});
});
我在 index.js
文件中定义如下:
router.use('/users', require('./users'))
router.use('/prev', require('./users'))
//and there are other routers here too but totally unrelated to users.js
但是,我在 Postman 上收到以下错误:
NotFoundError: Not Found
我知道这个错误表明我没有正确路由它。但是我无法确定我要去哪里错了。我定义的其他路线正在运行。谁能帮我解决这个问题?谢谢:)
我认为您指定了两次“/prev”。如果您将 users.js 中的路线更改为“/”,看看会发生什么。我认为目前路线“/prev/prev”将 return 结果。
我猜你的 users.js 应该是这样的:
const express = require("express");
const router = express.Router();
router.get('/', function (req, res, next) {
Booking.find({} ,(err,prevBookings)=>{
if(err) {
res.status(400).send('No previous bookingd found.');
}
if(prevBookings[0]) {
res.status(200).send(prevBookings);
}
else{
console.log("no records")
res.status(200).send("No previous bookings found.")
}
});
});
module.exports = router;
然后在顶层 (index.js) 或其他什么:
app.use("/", router);
router.use('/prev', require('./users'))
这应该 return 是“/prev”的正确结果
对于预订模型,您能否尝试像这样修改 mongoose 模式(添加 { collection: } 条目):
var bookingSchema = mongoose.Schema({
_id : {
type: mongoose.Schema.Types.ObjectId,
required: true
},
user_id : {
type: mongoose.Schema.Types.Mixed,
ref: 'User',
required: true
},
places_id : {
type: mongoose.Schema.Types.ObjectId,
ref: 'Place',
required: true
},
fromDate : {
type: Date,
required: true,
default: Date.now()
},
toDate : {
type: Date,
required: true,
default: Date.now()
},
people_count : {
type: String,
required: true
},
package_details : {
type: mongoose.Schema.Types.Mixed
},
total_cost : {
type : Number,
required : true
},
cost : {
type: Number,
required: true
},
// confirmation: {
// type : String,
// required: true
// },
transaction_no : {
type : String,
required : true
}
}, {
collection: 'booking'
}
)
我是 node.js 的新手,我正在编写一个 GET 请求以从我的数据库中检索文档。这是我的请求的定义(在 users.js
中)-
router.get('/', function (req, res, next) {
Booking.find({} ,(err,prevBookings)=>{
if(err) {
res.status(400).send('No previous bookings found.');
}
if(prevBookings[0]) {
res.status(200).send(prevBookings);
}
else{
console.log("no records")
res.status(200).send("No previous bookings found.")
}
});
});
我在 index.js
文件中定义如下:
router.use('/users', require('./users'))
router.use('/prev', require('./users'))
//and there are other routers here too but totally unrelated to users.js
但是,我在 Postman 上收到以下错误:
NotFoundError: Not Found
我知道这个错误表明我没有正确路由它。但是我无法确定我要去哪里错了。我定义的其他路线正在运行。谁能帮我解决这个问题?谢谢:)
我认为您指定了两次“/prev”。如果您将 users.js 中的路线更改为“/”,看看会发生什么。我认为目前路线“/prev/prev”将 return 结果。
我猜你的 users.js 应该是这样的:
const express = require("express");
const router = express.Router();
router.get('/', function (req, res, next) {
Booking.find({} ,(err,prevBookings)=>{
if(err) {
res.status(400).send('No previous bookingd found.');
}
if(prevBookings[0]) {
res.status(200).send(prevBookings);
}
else{
console.log("no records")
res.status(200).send("No previous bookings found.")
}
});
});
module.exports = router;
然后在顶层 (index.js) 或其他什么:
app.use("/", router);
router.use('/prev', require('./users'))
这应该 return 是“/prev”的正确结果
对于预订模型,您能否尝试像这样修改 mongoose 模式(添加 { collection: } 条目):
var bookingSchema = mongoose.Schema({
_id : {
type: mongoose.Schema.Types.ObjectId,
required: true
},
user_id : {
type: mongoose.Schema.Types.Mixed,
ref: 'User',
required: true
},
places_id : {
type: mongoose.Schema.Types.ObjectId,
ref: 'Place',
required: true
},
fromDate : {
type: Date,
required: true,
default: Date.now()
},
toDate : {
type: Date,
required: true,
default: Date.now()
},
people_count : {
type: String,
required: true
},
package_details : {
type: mongoose.Schema.Types.Mixed
},
total_cost : {
type : Number,
required : true
},
cost : {
type: Number,
required: true
},
// confirmation: {
// type : String,
// required: true
// },
transaction_no : {
type : String,
required : true
}
}, {
collection: 'booking'
}
)