【发布时间】:2021-01-04 11:09:57
【问题描述】:
我正在开发一款评估学生代数 1 级别的应用。我正在尝试向数据库发送一个名为“answers”的字符串,但没有发送任何内容。我在下面展示了模型/模式,基本上每个提交都应该发送答案字符串(它最初是一个对象,但我无法得到Mongoose not persisting object的答案,所以我只是尝试一个字符串来看看它是否甚至提交一个字符串。用户和日期被提交到数据库,但甚至没有答案属性的条目。我已经看到如果我提交“2”发送的有效负载是 {“results”:“2 "} 所以请求正文中有一些内容。我从服务器返回的响应是 {} 所以我认为我没有正确解构道具或者可能无意中发送了一个对象。关于为什么没有答案属性的任何想法都提交给数据库?任何帮助都非常感谢!
api/algebra1.js(发送测试结果的路径)
const express = require('express');
const router = express.Router();
var bodyParser = require('body-parser')
const bcrypt = require('bcryptjs');
const algebra1 = require('../../models/Algebra1');
const jwt = require('jsonwebtoken');
const config = require('config');
const auth = require('../../middleware/auth');
//@route POST api/auth
//@desc Algebra 1 route
//@access Private
var jsonParser = bodyParser.json();
router.post('/', [jsonParser, auth], async (req, res) => {
const { answers } = req.body;
try {
let newTest = new algebra1({
answers: answers,
user: req.user.id,
date: Date.now()
})
console.log("body is " + req.body)
await newTest.save();
res.json({ answers: answers });
} catch (err) {
console.error(err.message);
res.status(500).send('Server error');
}
})
module.exports = router;
Algebra1.js(猫鼬模型):
const mongoose = require('mongoose');
const Algebra1Schema = new mongoose.Schema({
answers: {
type: String
},
user: {
type: mongoose.Schema.Types.ObjectId,
ref: 'user'
},
date: {
type: Date,
default: Date.now
}
})
module.exports = algebra1 = mongoose.model('algebra1', Algebra1Schema)
提交操作(将结果提交到 api/algebra1 路由):
export const submit = (results) => async dispatch => {
try {
const config = {
headers: {
'Content-Type': 'application/json'
}
}
console.log(results);
const body = JSON.stringify({ results });
const res = await axios.post('/api/algebra1', body, config);
dispatch({
type: QuestionActionTypes.RESET
})
dispatch(setAlert('You\;ve finished your assessment!', 'success'));
} catch (err) {
console.error(err.message);
}
}
【问题讨论】:
标签: node.js reactjs mongodb mongoose redux