[英]Retrieving data from MongoDB using Mongoose not working
我有一个简单的NodeJS,Express,Mongoose应用程序,可以根据在线教程从MongoDB中保存和检索数据。 我面临的问题是,每当尝试检索任何已保存的记录时,我只会得到_id和__v,如下所示……其他所有电影字段都不会显示。 以下是我用来在MongoDB中保存数据/从MongoDB中检索数据的代码,请有人告诉我我在这里做错了什么以及如何解决它? 谢谢
{
"_id": "542819b25550346209c85272",
"__v": 0
}
app.js:
var express = require('express');
var bodyParser = require('body-parser');
var mongoose = require('mongoose');
var movies = require('./routes/movies');
var app = express();
var dbName = 'movieDB';
var connectionString = 'mongodb://localhost:27017/' + dbName;
mongoose.connect(connectionString);
app.use(bodyParser.json());
app.use(bodyParser.urlencoded());
app.use('/api', movies);
module.exports = app;
movie.js
var mongoose=require('mongoose');
var Schema=mongoose.Schema;
var movieSchema = new Schema({
title: String,
releaseYear: String,
director: String,
genre: String
});
module.exports = mongoose.model('Movie', movieSchema);
电影.js
var Movie = require('../models/movie');
var express = require('express');
var router = express.Router();
router.route('/movies').get(function(req, res) {
Movie.find(function(err, movies) {
if (err) {
return res.send(err);
}
res.json(movies);
});
});
router.route('/movies').post(function(req, res) {
var movie = new Movie(req.body);
movie.save(function(err) {
if (err) {
return res.send(err);
}
res.send({ message: 'Movie Added' });
});
});
module.exports = router;
我已经测试过使用Chrome Postman保存到数据库的功能,在其中我已将POST> ROW以下数据以JSON格式发送到/ api / movies:
{"title":"Matrix Reloaded 2", "releaseYear": "2015", "director": "Mike", "genre": "Action"}
协商“真正的” RESTful服务的一个非常重要的部分是“ Content-Type”标头设置应适合有效负载。
因此,在请求正文中发送JSON内容时,“ Content-Type”标头值应设置为“ application / json”。
这样一来,“行为良好”的反序列化引擎就会真正理解它们具有要执行的特定内容。 错误的实现会“假设”他们正在获取JSON或XML或其他某种格式。 但是良好的实现会在执行任何操作之前检查该标头值。
无论如何,无论何时与RESTful接口进行通信,都应尝试从客户端进行设置。 即使有人编码不正确,它也应该做正确的事。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.