簡體   English   中英

我無法使用Mongoose將文件保存或查找到MongoDB中

[英]I can't save or find a document into MongoDB using Mongoose

我是第一次使用nodeJS,並且試圖創建一個通過Mongoose連接到MongoDB的應用程序。

我已經成功安裝了MongoDB,NodeJS和Mongoose(通過npm)。

我的問題是:當我通過mongoose連接我的節點應用程序時沒有顯示任何錯誤,但是當我嘗試插入文檔時,它根本什么都沒做。 在保存行凍結。

這是我的代碼

var express  = require('express');
var app      = express();                             
var mongoose = require('mongoose');
...
mongoose.connect('mongodb://127.0.0.1:27017/exampleDB');
mongoose.Promise = global.Promise;
var db = mongoose.connection;
db.on('error', console.error.bind(console, 'MongoDB connection error:'));

var someModel = mongoose.model('someModel', {
    name : String
});

app.get('/api/todos', function(req, res) {
  var awesome_instance = new someModel({ name: 'awesome' });
  console.log("about to save the document");
  awesome_instance.save(function (err) {
    if (err) return handleError(err);
  });
});

app.post('/api/todos', function(req, res) {

});
...
app.listen(8080);
console.log("App listening on port 8080");

使用mongo客戶端,我可以看到我的數據庫,但是看不到代碼應創建的集合。 我的mongoDB也會檢測到來自nodeJS的連接。 我只是不知道會發生什么。

這是我的server.js(節點)顯示的內容

$ node server.js
App listening on port 8080
about to save the document
GET /api/todos - - ms - -

這是我的蒙哥客戶

$ ./mongo
MongoDB shell version v4.0.0
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 4.0.0
use exampleDB
switched to db exampleDB
show collections
exampleCollection

非常感謝。

讓您get它,看看它是否有效。

var express  = require('express');
var app      = express();                             
var mongoose = require('mongoose');

mongoose.connect('mongodb://127.0.0.1:27017/exampleDB', { useNewUrlParser: true });
mongoose.Promise = global.Promise;
var db = mongoose.connection;
db.on('error', console.error.bind(console, 'MongoDB connection error:'));

var someModel = mongoose.model('someModel', {
    name : String
});

app.get('/api/todos', async function(req, res) {
var awesome_instance = new someModel({ name: 'awesome' });
await awesome_instance.save()
});

app.post('/api/todos', function(req, res) {

});
app.listen(8080, ()=>console.log("App listening on port 8080"));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM