NodeJS服务器从MongoDB返回空数据

我正在制作一个应用程序,将应用程序发送POST请求数据到nodeJS服务器。 内容的JSON格式如下所示: {"encrypteddata": "someencryptedvalueofthetext"} 。 这些数据将被保存在MongoDB中。
我创build了两个文件,一个是app.js ,另一个是/models/encdata.js 。 这两个文件的内容如下。
app.js

 var express = require('express'); var app = express(); var bodyParser = require('body-parser'); var mongoose = require('mongoose'); app.use(bodyParser.json()); ENCDATA = require('./models/encdata'); mongoose.connect('mongodb://localhost/encdata', { useMongoClient: true }); // the url access the database var db = mongoose.connection; app.get('/', function(req, res){ res.send('Visit /api/encdata'); app.get('/api/encdata', function(req, res){ ENCDATA.getENCDATA(function(err, encdata){ if(err){ throw err; } res.json(encdata); }); }); app.post('/api/encdata', function(req, res){ var encdata = req.body; ENCDATA.addENCDATA(encdata, function(err, encdata){ if(err){ throw err; } res.json(encdata); }); }); }); app.listen(3000); console.log('Running on port 3000'); 

encda​​ta.js

 var mongoose = require('mongoose'); var encdataencryptSchema = mongoose.Schema({ encrypteddata: { type: String, required: true } }); var ENCDATA = module.exports = mongoose.model('encdata', encdataencryptSchema); module.exports.getENCDATA = function(callback, limit){ ENCDATA.find(callback).limit(limit); } module.exports.addENCDATA = function(encdata, callback){ ENCDATA.create(encdata, callback); } 

而MongoDB中的数据是:

 {"encrypteddata": "someencryptedvalueofthetext"} 

但是,当我对url localhost:3000/api/encdata发出GET请求时,它显示[] (尽pipe我有数据,但是是一个空的数组)。 即使POST请求不起作用,我无法保存任何数据。

我重写了你的代码,通过改变variables的名称,它为我工作。 app.js文件看起来像这样:

 var express = require('express'); var app = express(); var bodyParser = require('body-parser'); var mongoose = require('mongoose'); var http = require('http'); app.use(bodyParser.json()); AES = require('./models/aes'); mongoose.connect('mongodb://localhost/aes', { useMongoClient: true }); // the url access the database var db = mongoose.connection; app.get('/', function(req, res){ res.send('Visit /api/aes'); app.get('/api/aes', function(req, res){ AES.getAES(function(err, aes){ if(err){ throw err; } res.json(aes); }); }); app.post('/api/aes', function(req, res){ var aes = req.body; AES.addAES(aes, function(err, aes){ if(err){ throw err; } res.json(aes); }); }); }); app.listen(3000); console.log('Running on port 3000'); 

encda​​ta.js中,您可以将variables更改为AES 。 将mongodb集合和数据库命名为aes