gpt4 book ai didi

javascript - NodeJS 服务器从 MongoDB 返回空数据

转载 作者:行者123 更新时间:2023-11-30 21:01:42 24 4
gpt4 key购买 nike

我正在制作一个应用程序,该应用程序将 POST 请求数据发送到 nodeJS 服务器。内容的 JSON 格式如下:{"encrypteddata": "someencryptedvalueofthetext"}。此数据将保存在 MongoDB 中。
我创建了两个文件,一个是 app.js,另一个是 /models/encda​​ta.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/encda​​ta 发出 GET 请求时,它显示 [](一个空数组,尽管我有数据)。甚至 POST 请求也不起作用,我无法保存任何数据。

最佳答案

我通过更改变量名称重写了您的代码,它对我有用。 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 中,您可以将变量更改为 AES。将 mongodb 集合和数据库 命名为 aes

关于javascript - NodeJS 服务器从 MongoDB 返回空数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47078142/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com