Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js GET请求无法从数据库检索数据_Node.js_Mongodb_Mean Stack - Fatal编程技术网

Node.js GET请求无法从数据库检索数据

Node.js GET请求无法从数据库检索数据,node.js,mongodb,mean-stack,Node.js,Mongodb,Mean Stack,我是node.js的新手,我正在编写一个GET请求,从数据库中检索文档。下面是users.js中我的请求的定义- 我在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 但是,我在邮递员身上发现了以下错

我是node.js的新手,我正在编写一个GET请求,从数据库中检索文档。下面是users.js中我的请求的定义-

我在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
但是,我在邮递员身上发现了以下错误:

NotFoundError:找不到


我知道这个错误表明我没有正确地路由它。但我无法确定我错在哪里。我定义的其他路线正在运行。谁能帮我解决这个问题?谢谢:

我想您指定了'/prev'两次。如果将users.js中的路由更改为/,请查看发生了什么。我认为目前route/prev/prev将返回一个结果

我猜你的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'))
这将在/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' 
}
)

您是否在应用程序中使用路由器?也许你在它前面加了什么前缀?users.js中还有什么?我看不到你在哪里创建路由器@TerryLennox你好,我已经编辑了这个问题,请检查:@ninesalt你好,不,我已经正确调用了use,据我所知你好,谢谢你的帮助。/prev/prev的东西起作用了——但是,它告诉我没有找到预订,但我的数据库中确实有预订。我还用users.js的完整代码编辑了这个问题。好的,酷!你正在接近一个解决方案。我只是想知道在预订模式中是否有需要改变的地方。我打赌这是一件微妙的事情,一个小小的改变就能解决。你能展示一些../模型/预订代码吗?我认为由于一个小问题,这个发现没有返回任何东西!我编辑了这个问题并添加了预订模型:数据库中的表叫什么,是预订、预订、用户等。?我想这就是问题所在!
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' 
}
)