gpt4 book ai didi

javascript - 在 Node 中获取请求后从 mongolab 获取空 JSON

转载 作者:可可西里 更新时间:2023-11-01 09:41:19 24 4
gpt4 key购买 nike

我的问题:我正在尝试从我的数据库中HTTP.GET 随机 questionSchema 但它返回""

在我的数据库(托管在 mongolab 中)中,我有几个不同的集合,但在我的问题集合中,我只有 3 个不同的 JSON 和 3 个不同的 questions

我有一个如下所示的Schema:

var questionSchema = new Schema({
description: String
});

module.exports = mongoose.model('Question', questionSchema);

在我的 routes.js 中,我放置了以下内容:

app.get('/api/getrandomquestion', function (req, res) {
if (req.params.description) {
res.json(req.description);
} else {
res.json("");
}

});

我还有一个名为 QuestionService.js 的服务,它应该查询数据库并从所有 (3) 个文档中返回一个随机 JSON 文档存在于那里。这是服务的代码:

var numberOfItemsToFind = 3;

Question.find({}, { '_id': 1}, function(err, data){
if (err) res.send(err);
var arr = shuffle.(data.slice(0));
arr.splice(numberOfItemsToFind, arr.length - numberOfItemsToFind);
var return_arr = [];
async.each(arr, function(item, callback){
Question.findById(item._id, function(err, data){
if (err) res.send(err);
return_arr.push(data);

callback();
});
}, function(err){
res.json(return_arr);
});
});

最后,我将这些与我的 questionCtrl 放在一起:

controller('QuestionCtrl', function ($scope, $http, $modal) {

$http.get('/api/getrandomquestion').success(function (question) {

$scope.description = question.description;
});
});

我正在使用 POSTMANlocalhost:3000/getrandomquestion 发出 HTTP.GET 请求正如我所说,我只返回 ""

对于解决我的问题(空 JSON 而不是真实的 JSON)的任何帮助将非常感谢!

最佳答案

问题出在你的routes.js:

app.get('/api/getrandomquestion', function (req, res) {
if (req.params.description) {
res.json(req.description);
} else {
res.json("");
}
});

req.params.description 未定义。所以 if 语句失败了。

如果参数 description 不是必需的,您应该像这样定义您的 GET API:

app.get('/api/getrandomquestion', function (req, res) {
QuestionService.getRandomQuestion(function(questions){
res.json(questions);
//res.send(questions);
});
});

基本上您的后端会收到一个 GET getrandomquestions API 调用,您只需使用 QuestionService 转发以获取 MongoDB。

关于javascript - 在 Node 中获取请求后从 mongolab 获取空 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34159214/

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