Node.js 使用mongoose检索文档时未找到数据
我有一个数据库:Node.js 使用mongoose检索文档时未找到数据,node.js,mongodb,express,mongoose,openshift,Node.js,Mongodb,Express,Mongoose,Openshift,我有一个数据库:be\u meta和一个集合:be\u meta\u记录。我通过mongo shell将以下文档插入其中: { "_id" : ObjectId("90sd744628ba73a8199f9db6"), "be_id" : "74HHF411-9UI8-440C-UIOP-E907DAF9C93F", "item_title" : "Item 1", "item_description" : "item 1 description", "item_link" : "http://
be\u meta
和一个集合:be\u meta\u记录
。我通过mongo shell
将以下文档插入其中:
{ "_id" : ObjectId("90sd744628ba73a8199f9db6"), "be_id" : "74HHF411-9UI8-440C-UIOP-E907DAF9C93F", "item_title" : "Item 1", "item_description" : "item 1 description", "item_link" : "http://stackoverflow.com/" }
我正在尝试通过mongoose访问相同的内容,使用以下代码:
server.js
var wagner = require('wagner-core');
require('./models')(wagner);
var express = require('express');
var app = express();
app.set('port', process.env.OPENSHIFT_NODEJS_PORT || 8080);
app.set('ip', process.env.OPENSHIFT_NODEJS_IP || '127.0.0.1');
var http = require('http');
app.use('/api/v1',require('./api')(wagner));
http.createServer(app).listen(app.get('port'), app.get('ip'), function(){
console.log('Express server listening on port ' + app.get('port'));
});
app.get('/', function (req, res) {
res.send('APIs are ready :)');
});
var express = require('express');
var status = require('http-status');
module.exports = function(wagner) {
var api = express.Router();
api.get('/be_meta_records/be_id/:be_id', wagner.invoke(function(BeMetaRecords){
return function(req, res){
console.log('be id ' + req.params.be_id);
BeMetaRecords.findOne({be_id: req.params.be_id}, function(err, beMetaRecords) {
if(err){
return res.status(status.INTERNAL_SERVER_ERROR).json({error: err.toString()});
}
if(!beMetaRecords){
return res.status(status.NOT_FOUND).json({error: 'Not Found'});
}
res.json({be_meta_records: beMetaRecords});
});
};
}));
return api;
};
var mongoose = require('mongoose');
module.exports = function(wagner){
var connectionString = '127.0.0.1/be_meta';
if(process.env.OPENSHIFT_MONGODB_DB_PASSWORD){
connectionString = process.env.OPENSHIFT_MONGODB_DB_USERNAME + ':' +
process.env.OPENSHIFT_MONGODB_DB_PASSWORD + '@' +
process.env.OPENSHIFT_MONGODB_DB_HOST + ':' +
process.env.OPENSHIFT_MONGODB_DB_PORT + '/' +
process.env.OPENSHIFT_APP_NAME;
}
mongoose.connect('mongodb://' + connectionString);
var BeMetaRecords = mongoose.model('BeMetaRecords', require('./be_meta_records'));
wagner.factory('BeMetaRecords', function(){
return BeMetaRecords;
});
return {
BeMetaRecords : BeMetaRecords
};
};
var mongoose = require('mongoose');
var beMetaRecordsSchema = {
be_id : {type: String, required: true},
item_title: {type: String, required: true},
item_description : {type: String},
item_link : {type: String}
};
module.exports = new mongoose.Schema(beMetaRecordsSchema);
module.exports.beMetaRecordsSchema = beMetaRecordsSchema;
api.js
var wagner = require('wagner-core');
require('./models')(wagner);
var express = require('express');
var app = express();
app.set('port', process.env.OPENSHIFT_NODEJS_PORT || 8080);
app.set('ip', process.env.OPENSHIFT_NODEJS_IP || '127.0.0.1');
var http = require('http');
app.use('/api/v1',require('./api')(wagner));
http.createServer(app).listen(app.get('port'), app.get('ip'), function(){
console.log('Express server listening on port ' + app.get('port'));
});
app.get('/', function (req, res) {
res.send('APIs are ready :)');
});
var express = require('express');
var status = require('http-status');
module.exports = function(wagner) {
var api = express.Router();
api.get('/be_meta_records/be_id/:be_id', wagner.invoke(function(BeMetaRecords){
return function(req, res){
console.log('be id ' + req.params.be_id);
BeMetaRecords.findOne({be_id: req.params.be_id}, function(err, beMetaRecords) {
if(err){
return res.status(status.INTERNAL_SERVER_ERROR).json({error: err.toString()});
}
if(!beMetaRecords){
return res.status(status.NOT_FOUND).json({error: 'Not Found'});
}
res.json({be_meta_records: beMetaRecords});
});
};
}));
return api;
};
var mongoose = require('mongoose');
module.exports = function(wagner){
var connectionString = '127.0.0.1/be_meta';
if(process.env.OPENSHIFT_MONGODB_DB_PASSWORD){
connectionString = process.env.OPENSHIFT_MONGODB_DB_USERNAME + ':' +
process.env.OPENSHIFT_MONGODB_DB_PASSWORD + '@' +
process.env.OPENSHIFT_MONGODB_DB_HOST + ':' +
process.env.OPENSHIFT_MONGODB_DB_PORT + '/' +
process.env.OPENSHIFT_APP_NAME;
}
mongoose.connect('mongodb://' + connectionString);
var BeMetaRecords = mongoose.model('BeMetaRecords', require('./be_meta_records'));
wagner.factory('BeMetaRecords', function(){
return BeMetaRecords;
});
return {
BeMetaRecords : BeMetaRecords
};
};
var mongoose = require('mongoose');
var beMetaRecordsSchema = {
be_id : {type: String, required: true},
item_title: {type: String, required: true},
item_description : {type: String},
item_link : {type: String}
};
module.exports = new mongoose.Schema(beMetaRecordsSchema);
module.exports.beMetaRecordsSchema = beMetaRecordsSchema;
models.js
var wagner = require('wagner-core');
require('./models')(wagner);
var express = require('express');
var app = express();
app.set('port', process.env.OPENSHIFT_NODEJS_PORT || 8080);
app.set('ip', process.env.OPENSHIFT_NODEJS_IP || '127.0.0.1');
var http = require('http');
app.use('/api/v1',require('./api')(wagner));
http.createServer(app).listen(app.get('port'), app.get('ip'), function(){
console.log('Express server listening on port ' + app.get('port'));
});
app.get('/', function (req, res) {
res.send('APIs are ready :)');
});
var express = require('express');
var status = require('http-status');
module.exports = function(wagner) {
var api = express.Router();
api.get('/be_meta_records/be_id/:be_id', wagner.invoke(function(BeMetaRecords){
return function(req, res){
console.log('be id ' + req.params.be_id);
BeMetaRecords.findOne({be_id: req.params.be_id}, function(err, beMetaRecords) {
if(err){
return res.status(status.INTERNAL_SERVER_ERROR).json({error: err.toString()});
}
if(!beMetaRecords){
return res.status(status.NOT_FOUND).json({error: 'Not Found'});
}
res.json({be_meta_records: beMetaRecords});
});
};
}));
return api;
};
var mongoose = require('mongoose');
module.exports = function(wagner){
var connectionString = '127.0.0.1/be_meta';
if(process.env.OPENSHIFT_MONGODB_DB_PASSWORD){
connectionString = process.env.OPENSHIFT_MONGODB_DB_USERNAME + ':' +
process.env.OPENSHIFT_MONGODB_DB_PASSWORD + '@' +
process.env.OPENSHIFT_MONGODB_DB_HOST + ':' +
process.env.OPENSHIFT_MONGODB_DB_PORT + '/' +
process.env.OPENSHIFT_APP_NAME;
}
mongoose.connect('mongodb://' + connectionString);
var BeMetaRecords = mongoose.model('BeMetaRecords', require('./be_meta_records'));
wagner.factory('BeMetaRecords', function(){
return BeMetaRecords;
});
return {
BeMetaRecords : BeMetaRecords
};
};
var mongoose = require('mongoose');
var beMetaRecordsSchema = {
be_id : {type: String, required: true},
item_title: {type: String, required: true},
item_description : {type: String},
item_link : {type: String}
};
module.exports = new mongoose.Schema(beMetaRecordsSchema);
module.exports.beMetaRecordsSchema = beMetaRecordsSchema;
be\u meta\u records.js
var wagner = require('wagner-core');
require('./models')(wagner);
var express = require('express');
var app = express();
app.set('port', process.env.OPENSHIFT_NODEJS_PORT || 8080);
app.set('ip', process.env.OPENSHIFT_NODEJS_IP || '127.0.0.1');
var http = require('http');
app.use('/api/v1',require('./api')(wagner));
http.createServer(app).listen(app.get('port'), app.get('ip'), function(){
console.log('Express server listening on port ' + app.get('port'));
});
app.get('/', function (req, res) {
res.send('APIs are ready :)');
});
var express = require('express');
var status = require('http-status');
module.exports = function(wagner) {
var api = express.Router();
api.get('/be_meta_records/be_id/:be_id', wagner.invoke(function(BeMetaRecords){
return function(req, res){
console.log('be id ' + req.params.be_id);
BeMetaRecords.findOne({be_id: req.params.be_id}, function(err, beMetaRecords) {
if(err){
return res.status(status.INTERNAL_SERVER_ERROR).json({error: err.toString()});
}
if(!beMetaRecords){
return res.status(status.NOT_FOUND).json({error: 'Not Found'});
}
res.json({be_meta_records: beMetaRecords});
});
};
}));
return api;
};
var mongoose = require('mongoose');
module.exports = function(wagner){
var connectionString = '127.0.0.1/be_meta';
if(process.env.OPENSHIFT_MONGODB_DB_PASSWORD){
connectionString = process.env.OPENSHIFT_MONGODB_DB_USERNAME + ':' +
process.env.OPENSHIFT_MONGODB_DB_PASSWORD + '@' +
process.env.OPENSHIFT_MONGODB_DB_HOST + ':' +
process.env.OPENSHIFT_MONGODB_DB_PORT + '/' +
process.env.OPENSHIFT_APP_NAME;
}
mongoose.connect('mongodb://' + connectionString);
var BeMetaRecords = mongoose.model('BeMetaRecords', require('./be_meta_records'));
wagner.factory('BeMetaRecords', function(){
return BeMetaRecords;
});
return {
BeMetaRecords : BeMetaRecords
};
};
var mongoose = require('mongoose');
var beMetaRecordsSchema = {
be_id : {type: String, required: true},
item_title: {type: String, required: true},
item_description : {type: String},
item_link : {type: String}
};
module.exports = new mongoose.Schema(beMetaRecordsSchema);
module.exports.beMetaRecordsSchema = beMetaRecordsSchema;
当我试图通过输入此url通过浏览器访问同一个url时:
http://127.0.0.1:8080/api/v1/be_meta_records/be_id/74HHF411-9UI8-440C-UIOP-E907DAF9C93F
我得到以下错误:
{"error":"Not Found"}
有什么想法吗
更新:在本地IP上工作
感谢@AlexBlex为我指明了正确的方向
我通过更新models.js中的以下代码行解决了本地IP的错误:
var BeMetaRecords = mongoose.model('BeMetaRecords', require('./be_meta_records'));
致:
更新:在OpenShift中不工作
当推送到openshift时,相同的代码不起作用,它显示相同的错误:
{"error":"Not Found"}
打开探查器,并检查应用程序发送到db的确切查询。嘿,我通过在localhost上检查配置文件信息解决了这个问题,但由于某些原因,openshift上的同一命令没有返回启动的db查询。有什么想法吗?