![](/img/trans.png)
[英]Uncaught (in promise) TypeError: snapshot.data is not a function when trying to retrieve documents from Firebase Firestore
[英]*Uncaught (in promise) TypeError:) Unable to retrieve array/collection from MongoDB Atlas
我是 Express 和 Mongoose 的初学者,为了学习,我正在尝试使用Mongoose.Model
从 MongoDB Atlas 中检索对象。 我已经在 CoursesModel.js 中创建了集合模式,我正在尝试使用Model.find().then()
在数据库的 get 请求中检索它,但它什么都不返回。 我想知道我在哪里搞砸了。
课程模型.js
const Mongoose= require("mongoose");
const Course_schema=Mongoose.Schema;
const CourseObj=new Course_schema({
type: {type:String, required:true},
Uni:{type:String, required:true},
Level:{type:String, required:true},
Programs:{type:String, required:true},
Availability:{type:String, required:true},
Language:{type:String, required:true},
Name:{type:String, required:true},
img:{type:String, required:true}
})
const Course_Model= Mongoose.model("Courses",CourseObj);
module.exports.Course_Model=Course_Model;
索引.js
const {res}=require("express");
const expressModule=require("express");
var bodyParser = require("body-parser");
const mongoose= require("mongoose");
const app= expressModule();
app.use(expressModule.json());
const Course_Collection=require("./CourseDb");
const course_model=Course_Collection.Course_Model;
//Connection establishes successfully
mongoose.connect("mongodb+srv://admin1:12345@cluster1.hojfs.mongodb.net/Edx?retryWrites=true&w=majority",{ useUnifiedTopology: true, useNewUrlParser: true}
).then((res)=>{
console.log("Database Connected"+res);
}).catch((err)=>{
console.log(err);
});
app.listen(3000,()=>{
console.log("Server listening at port 3000")
})
app.get("/addCourses",(request,response)=>{
response.header("Access-Control-Allow-Origin","*");
console.log("Get function called at server");
course_model.find().then(
(Courses)=>{
console.log("List of courses:"+Courses[0]);//trying to get the first object but its undefined
response.send(Courses);
}
).catch((err)=>{
console.log(err);
})
})
首先,您可以在邮递员中尝试请求以便于验证。 100% 确定它来自 api 。 第二个应用这个:
在您的模型导出中:更改:
const Course_Model= Mongoose.model("Courses",CourseObj);
module.exports.Course_Model=Course_Model;
至 :
exports.Course_Model= Mongoose.model("Courses",CourseObj);
在你的索引中
const {Course_Model}=require("./CourseDb");
const express = require('express');
const router = express.Router();
router.get("/addCourses",async (request,response)=>{
try{
response.header("Access-Control-Allow-Origin","*");
console.log("Get function called at server");
const list = await Course_Model.find();
if(list){
response.status(200).json({ list});
}
}
catch(error){
response.status(404).json({error});
}
})
如果有帮助,请告诉我。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.