我有一个使用 IOS 创建的简单应用程序,它是一个问卷应用程序,每当用户单击播放时,它都会调用对 node.js/express 服务器的请求
从技术上讲,用户单击答案后,它将转到下一个问题
我很困惑使用哪种方法来获取问题/问题
- 一次获取所有数据并将其呈现给用户 - 这是一个数组
- 随着用户处理下一个问题,逐一获取数据 - 每次调用一个数据
API示例
// Fetch all the data at once
app.get(‘/api/questions’, (req, res, next) => {
Question.find({}, (err, questions) => {
res.json(questions);
});
});
// Fetch the data one by one
app.get('/api/questions/:id', (req, res, next) => {
Question.findOne({ _id: req.params.id }, (err, question) => {
res.json(question);
});
});
第一种方法的问题是,假设有 200 个问题,那么 mongodb 一次获取会不会很慢,并且可能会很慢进行网络请求
第二种方法的问题是,我无法想象如何做到这一点,因为每个问题都是独立的,触发下一个 api 调用很奇怪,除非问题 mongodb 中有一个计数器或一个级别。
为了清楚起见,这是 Mongoose 中的数据库设计问题
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const QuestionSchema = new Schema({
question: String,
choice_1: String,
choice_2: String,
choice_3: String,
choice_4: String,
answer: String
});