我开始通过在线课程进行服务器端编程。根据我的理解,我们使用mongoose.connect(url)
连接到mongodb
,其中url可以是运行mongodb服务器的localhost url
。
但最近我忘了使用mongod运行本地mongodb服务器。当我使用以下代码运行我的节点应用程序时,它运行得很好:
var mongoose = require('mongoose');
mongoose.Promise = global.Promise;
mongoose.connect(process.env.MONGO_URL || 'mongodb://localhost:27017/TodoApp');
const {Todo} = require('./../server/models/todos');
const {ObjectID} = require('mongodb');
Todo.remove({}).then((result)=>{
console.log(result);
});
即使mongodb服务器没有运行,它也没有错误。当我使用Robo-3T tool
检查本地数据库时,documents
被删除了。我已经再次验证了这一点。
我无法理解为什么我的节点应用能够连接到mongodb://localhost:27017/TodoApp
,即使mongodb服务器没有在localhost:27017.
上运行另外,为什么Robo-3T工具能够连接到localhost: 27017
1}}如果服务器没有运行。
感谢。
答案 0 :(得分:2)
The mongodb
server was already running. Looks like the server does not shuts down on closing the terminal. It still runs in background. We have to close it using Ctrl+C
.
More info: mongodb doesn't stop when I close terminal
Thanks @Sergio Tulentsev.
答案 1 :(得分:1)
另一个原因是MongoDB服务器作为服务在后台中运行。即使您重新启动计算机,它也可能正在运行。
我认识到我的胜利10,MongoDB服务器会自动启动。因此,您无需在本地运行mongod。
在10获胜时,您可以通过以下方式进行检查:
可能您的启动类型是“自动”,您可以在此处更改MongoDB Server的启动类型。
答案 2 :(得分:1)
原因很简单,该进程在后台运行。如果您搜索“服务”-(在Windows中),向下滚动以检查是否有MongoDb,您将看到该进程正在运行(已启动)。如果设置为“自动”,则即使每次重新启动也会启动。
答案 3 :(得分:0)
它发生在您没有明确停止服务器并关闭终端的情况下。服务器在后台运行,您也可以在任务管理器中看到它。按Ctrl + C退出,它将停止您的服务器。