MEAN数据库查询中的响应为空
Empty response in MEAN database query
我正在尝试让Node.js服务器与数据库通信,以便将其扩展到Angular前端。我有一个向数据库发出请求的路径,该路径应该返回整个数据库(5个文档)。我有一个到数据库的连接,因为我可以在刷新服务器时看到它的连接。
我将尝试只列出下面的相关代码:
正在加载模块。。。
var express = require('express');
var morgan = require('morgan');
var mongoose = require('mongoose');
var bodyParser = require('body-parser');
var methodOverride = require('method-override');
var app = express();
定义数据库模式并连接
// Database connection and scheme ===================
mongoose.connect('mongodb://localhost/data/');
var schema = mongoose.Schema({
date: 'String',
newProofs: [Number],
changes: [Number],
output: [Number]
});
var TEST2014 = mongoose.model('TEST2014', schema);
中间件配置。我不知道methodOverride做什么。我相信body解析器允许响应为JSON?
// Application middleware and configurations ==============
app.set('view engine', 'ejs');
app.use(express.static(__dirname + '/public'));
app.use(morgan('dev'));
app.use(bodyParser.urlencoded({'extended':'true'})); // parse application/x-www-form-urlencoded
app.use(bodyParser.json()); // parse application/json
app.use(bodyParser.json({ type: 'application/vnd.api+json' })); // parse application/vnd.api+json as json
app.use(methodOverride());
向数据库发出请求的路径。
app.get('/api/TEST2014', function(req, res) {
// Use mongoose to get all weekdays for display
TEST2014.find(function(err, days) {
// if there is an error retrieving, send the error then nothing else
if (err)
res.send(err);
res.json(days);
});
});
正在收听。。。
var server = app.listen(3000, function() {
console.log('Listening on port %d', server.address().port);
});
当我在http://localhost:3000/api/TEST2014
刷新页面时,我看到的是:
{}
我希望看到这个(我目前在数据库中的内容)。
> db.TEST2014.find().pretty()
{
"_id" : ObjectId("541c377d51b7f5ebbffb7ab1"),
"date" : "09192014",
"newProofs" : 15,
"changes" : 16,
"output" : 17
}
{
"_id" : ObjectId("541c4a4451b7f5ebbffb7ab2"),
"date" : "09182014",
"newProofs" : 7,
"changes" : 8,
"output" : 9
}
{
"_id" : ObjectId("541c4a5651b7f5ebbffb7ab3"),
"date" : "09172014",
"newProofs" : 8,
"changes" : 9,
"output" : 10
}
{
"_id" : ObjectId("541c4a7151b7f5ebbffb7ab4"),
"date" : "09162014",
"newProofs" : 9,
"changes" : 10,
"output" : 11
}
{
"_id" : ObjectId("541c4a8051b7f5ebbffb7ab5"),
"date" : "09152014",
"newProofs" : 10,
"changes" : 11,
"output" : 12
}
感谢阅读!
PS-我的请求头说它接受Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
JSON需要在其中的某个位置吗?
问题出现在以下行:
var TEST2014 = mongoose.model('TEST2014', schema);
默认情况下,当您只向上面的函数传递2个参数时,mongoose假设集合名称为"TEST2014s",即第一个参数加上一个"s"。
我在下面的查询中看到,您的收藏名称是"TEST2014"。我建议您明确地传递集合名称,并尝试以下操作:
var TEST2014 = mongoose.model('TEST2014', schema, 'TEST2014');
我能够通过将猫鼬连接更改为以下内容来解决问题:
mongodb://<local ip>:27017/<database name>
结束这个问题。
相关文章:
- 将输入字段中的文本提交到我的数据库,同时将其添加到我的列表中
- 如何通过php页面将数据库值检索到jquery自动完成框中
- 使用javascript从数据库中添加表
- 通过CSV文件上载更新数据库表
- 如何将getJson的响应保存在全局变量中
- 平均值:无法将数据更新到数据库
- 如何使用 Angular JS 将数据保存在数据库中
- 如何使用Spring MVC将Facebook返回的响应数据保存在Java类中
- 使用angularjs向浏览器发送servlet响应(下载功能)
- MockJax没有在JavaScript应用程序中发送对我AJAX请求的响应
- Rails-JQueryUIAutcomplete和AJAX不工作,可以't连接到数据库
- 自定义验证并格式化从数据数据库返回的响应-BEGINNER
- 如何使用JavaScript控制数据库查询的响应顺序
- 奇怪的数据库响应
- 在数据库数据更改时向所有活动会话发送响应
- 如何在rails数据库中保存JSON响应的值
- MEAN数据库查询中的响应为空
- django模板:将数据库响应文本读取为HTML
- Jquery ajax调用数据库无响应
- 通过.txt文件将json化的HTTP响应头导入Mongo数据库