使用node.js从mongoDB获取数据,连接正常,但没有显示数据
因此,我使用node.js创建了一个应用程序,并将其连接到mongoDB,但没有显示任何数据,它只是显示并清空json数据文件[]。数据库名为sample\u geospatial,集合名为shipcrasks,所有ip地址都可以连接 为什么在浏览器中显示数据的任务没有成功 这是我的app.js 这是我的模型 这是我的文件使用node.js从mongoDB获取数据,连接正常,但没有显示数据,node.js,mongodb,express,mongoose,Node.js,Mongodb,Express,Mongoose,因此,我使用node.js创建了一个应用程序,并将其连接到mongoDB,但没有显示任何数据,它只是显示并清空json数据文件[]。数据库名为sample\u geospatial,集合名为shipcrasks,所有ip地址都可以连接 为什么在浏览器中显示数据的任务没有成功 这是我的app.js 这是我的模型 这是我的文件 把它作为一个答案: 如果在api响应中看到的是[],而不是错误- 那么问题可能是你无法连接到正确的网络 集合名称(如果您确定集合中包含数据)或集合所在的正确db 因此,从您的
把它作为一个答案:
如果在api响应中看到的是
[]
,而不是错误-
那么问题可能是你无法连接到正确的网络
集合名称(如果您确定集合中包含数据)或集合所在的正确db
因此,从您的数据库url:
'mongodb+srv://gockzor:***********@cluster0-boypg.azure.mongodb.net/test?retryWrites=true&w=majority'
async function myDbConnection() {
const url = mongodb+srv://gockzor:***********@cluster0-boypg.azure.mongodb.net/test?retryWrites=true&w=majority';
try {
await mongoose.connect(url, { useNewUrlParser: true });
console.log('Connected Successfully')
mongoose.connection.useDb('myDB'); // Switching happens here..
/**
* Do some DB transaction with mongoose models as by now models has already been registered to created DB connection
*/
} catch (error) {
console.log('Error connecting to DB ::', error);
}
}
const dbUrl = mongodb+srv://gockzor:***********@cluster0-boypg.azure.mongodb.net/myDB?retryWrites=true&w=majority'
您已连接到test
DB,因此您的DB是否存在您的收藏海难
?如果没有,请在连接后尝试切换到实际数据库,或将url中的test
替换为实际数据库名称
因此,默认情况下,当您从Atlas mongoDB获得url时,您将获得一个指向test
db的url w.r.t。因此,在url上一次性替换它,或者您可以在连接到DB后使用useDb
函数将其切换到代码Ex.:-
从代码切换DB的基本方式::
'mongodb+srv://gockzor:***********@cluster0-boypg.azure.mongodb.net/test?retryWrites=true&w=majority'
async function myDbConnection() {
const url = mongodb+srv://gockzor:***********@cluster0-boypg.azure.mongodb.net/test?retryWrites=true&w=majority';
try {
await mongoose.connect(url, { useNewUrlParser: true });
console.log('Connected Successfully')
mongoose.connection.useDb('myDB'); // Switching happens here..
/**
* Do some DB transaction with mongoose models as by now models has already been registered to created DB connection
*/
} catch (error) {
console.log('Error connecting to DB ::', error);
}
}
const dbUrl = mongodb+srv://gockzor:***********@cluster0-boypg.azure.mongodb.net/myDB?retryWrites=true&w=majority'
或者您可以直接在url中使用类似的内容::
'mongodb+srv://gockzor:***********@cluster0-boypg.azure.mongodb.net/test?retryWrites=true&w=majority'
async function myDbConnection() {
const url = mongodb+srv://gockzor:***********@cluster0-boypg.azure.mongodb.net/test?retryWrites=true&w=majority';
try {
await mongoose.connect(url, { useNewUrlParser: true });
console.log('Connected Successfully')
mongoose.connection.useDb('myDB'); // Switching happens here..
/**
* Do some DB transaction with mongoose models as by now models has already been registered to created DB connection
*/
} catch (error) {
console.log('Error connecting to DB ::', error);
}
}
const dbUrl = mongodb+srv://gockzor:***********@cluster0-boypg.azure.mongodb.net/myDB?retryWrites=true&w=majority'
如果在使用
res.json
发送数据之前将其记录到控制台,您是否看到损坏的数据?如果您在api响应中看到[]
而不是错误,则问题可能是您无法连接到正确的集合或存在集合的正确数据库,所以从你的dburl
你已经连接到test
,但是你的收藏海难
就在这里吗?如果不是,请尝试切换到实际数据库或将url中的测试替换为实际数据库..将mongoose url中的测试替换为您的db名称,即示例\地理空间感谢快速回复,原因很简单:)我直接从mongoDB复制了连接字符串,没有意识到我必须在url中指定数据库:)