sql >> Database >  >> NoSQL >> MongoDB

MongoDB-document invoegen met React.js

Ik vermoed dat je de database op de server nodig hebt, dus je hebt misschien een API nodig om de gegevens te posten, aangezien de database zelf niet op de client staat. Ik gebruik Superagent voor het verzenden van de gegevens en Mongoose om een ​​schema en mongo-database te maken.

messageModel.js

const mongoose = require('mongoose');

const Schema = mongoose.Schema;

// create a schema
const messageSchema = new Schema({
  // You may need to add other fields like owner
  addedOn: String,
  message: String,
});
const Message = mongoose.model('Message', messageSchema);
module.exports = Message;

server.js

import Message from './models/messageModel';

mongoose.connect('mongodb://user:[email protected]:port/database');

app.post('/api/messages', (req, res) => {
  const doc = new Message({ message: req.body.message })
  doc.save();
});

client.js

import React, { Component } from 'react';
import request from 'superagent';

class componentName extends Component {
  constructor(props) {
    super(props);
    this.state = {
      message: '',
    };
    this.handleMessageInput = this.handleMessageInput.bind(this);
  }
  handleMessageInput(e) {
    this.setState({ message: e.target.value });
  }
  handleSubmitMessage() {
    console.log('starting to submit profile');
    if (this.state.isFormFilledProfile) {
      console.log('Profile Form appears filled');
      const data = {
        message: this.state.message,
      };

      request
        .post('/api/messages')
        .send(data)
        .set('Accept', 'application/json')
        .end((err, res) => {
          if (err || !res.ok) {
            console.log('Oh no! err');
          } else {
            console.log('Success');
          }
        });
    }
  }
  render() {
    return (
      <div>
        <div>
          <form onSubmit={this.handleSubmitMessage}>
            <input
              onChange={this.handleMessageInput}
              value={this.state.message}
            />
            <button type='Submit' value='Submit'>Submit</button>
          </form>
        </div>
      </div>
    );
  }
}

export default componentName;

Mogelijk moet u ook hier de handleiding voor reactieformulieren doorlopen. Al het beste!!!



  1. Een redis-listener maken - mogelijk in php?

  2. hoe om te gaan met de verbindingsfout voor MongoDB

  3. MongoDB sum() data

  4. Log in met root-referenties op Mongodb-container gemaakt met Docker compose