首页 > 解决方案 > 需要用node js mongodb实现redux

问题描述

我不知道如何实现 mongo db 和 node.js 以便它可以使用我的 redux 中的数据。这是我的一些代码。我已经坚持了一段时间。我很困惑,因为我看到的大多数文章都不适用于 redux。控制器和动作创建者是我最受困的。

Actions.js

export const createQuiz = (state) => async(dispatch) => {
  console.log(state)
  axios.post('http://localhost:5000/create', state)
  .then(res =>
    dispatch({
      type: CREATE,
      payload: res.data
    })
  )
  .then(res => 
    console.log(res.data + 15)
  )
  .catch(error => 
    console.log(error.message))
}

减速器.js

const quizState = {
    questions: [
        {
            
        }
    ],
    fields: {
      
    }
}

export default (state = quizState, action ) => {
    switch(action.type) {
        case FETCH_ALL:
            return action.payload;
        case CREATE:
            return { 
                questions: [...state.questions, action.payload.questions],
                fields: {
                  difficulty: action.payload.difficulty,
                  creator: action.payload.creator,
                  category: action.payload.category,
                  title: action.payload.title,
                }
            }
        default: 
            return state
    }
}

服务器/controller.js

export const createQuiz = async (req, res) => {
    const newQuiz = new quizModel({
        questions: req.body.questions,
        difficulty: req.body.fields.difficulty,
        creator: req.body.fields.creator,
        category: req.body.fields.category,
        title: req.body.fields.title
    })

    newQuiz.save().then(quiz => res.json(quiz))
}

路由.js

const router = express.Router()

router.get('/', getQuizzes)
router.post('/', createQuiz)

index.js 
app.use('/create', quizRoute)

模型.js

const quizSchema = mongoose.Schema({
    questions: [],
    difficulty: String,
    category: String,
    title: String,
    creator: String
});

const quizModel = mongoose.model('Quiz', quizSchema);

标签: node.jsmongodbreduxreact-redux

解决方案


推荐阅读