首页 > 解决方案 > 猫鼬不在nodejs中获取数据

问题描述

使用 mongoshell 时没有获取数据,它工作正常

server.js 文件

const express = require('express')
const app = express()
const cors = require('cors')
const mongoose = require('mongoose')
const topicRoute = require('./routes/topicRoute')

app.use(cors())
app.use(express.json())

const dbUri = "mongodb+srv://rohan:password@db_name.qg229.mongodb.net/db_name"
mongoose.connect(dbUri)

app.use("/",topicRoute)

app.listen(3001,function(){
    console.log("Server started")
})

routes/topicRoute.js 文件,此处未发现错误并返回 object 对象

const express = require('express')
const router = express.Router()
const Topic = require('../models/topicModel')

router.route("/topics").get((req,res)=>{
    Topic.find().then(fetchedTopics => res.json(fetchedTopics))
})
module.exports = router

模型/topicModel.js 文件

const mongoose = require('mongoose')

const topicSchema = {
    topic_id: String,
    topic_name: String,
    topic_description: String,
}

const Topic = mongoose.model('topics',topicSchema)

module.exports = Topic

标签: node.jsmongodb

解决方案


尝试使用此代码进行数据库连接

// database connection 
const { MongoClient, Collection } = require('mongodb');
    
    const url = 'mongodb://localhost:27017' const database = 'ecom'     // database name define here const collectionName = 'reviews';   //database collection define here const client = new MongoClient(url);
    
    async function getData(){
        let result =await client.connect();
        let db = result.db(database)
        let collection = db.collection(collectionName)
        let response = await collection.find({}).toArray()
        console.log(response); }
    
    getData();

推荐阅读