sql >> Databasteknik >  >> NoSQL >> MongoDB

Infoga MongoDB-dokument med React.js

Jag antar att du behöver databasen på servern, så du kan behöva ett API för att lägga upp data eftersom själva databasen inte finns på klienten. Jag använder Superagent för att skicka data och Mongoose för att skapa ett schema och en mongo-databas.

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;

Du kan också behöva gå igenom guiden för reaktionsformulär här. Allt gott!!!



  1. Nodejs kan inte ansluta till mongodb på molnskalet

  2. Redis klientbiblioteksrekommendationer för användning från Scala

  3. Hur man använder fältvärde som nyckelnamn i Mongodb-resultat

  4. Hur kan du se om en samling är begränsad?