Express req.body strange key value combinations being returned

Viewed 46

When I get the data back from my form the req.data looks like this -

{ '”title”': 'Blog Post', '”body”': 'This is a test' }

I can't access it and can't write the data to the test mongoldb file, I assume because its not being recognized as a key value pair.

my index.js file looks like this

const express = require('express');
const path = require('path');

const mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/my_database', { useNewUrlParser: true });

const BlogPost = require('./models/BlogPost.js');
//  connect node with mongo DB

const app = new express();
const ejs = require('ejs');
const { append } = require('express/lib/response');
const { createSecretKey } = require('crypto');
app.set('view engine', 'ejs');

app.use(express.static('public'));

// app.use(express.urlencoded());
app.use(express.urlencoded({ extended: true }));
app.use(express.json());

My app.post looks like this

app.post('/posts/store', (req, res) => {

    console.log(req.body);

    BlogPost.create(req.body, (error, blogpost) => {
        console.log(error, blogpost);

        res.redirect('/');
    });
});

my schema looks like this

const mongoose = require('mongoose');
const Schema = mongoose.Schema;

const BlogPostSchema = new Schema({
    title: String,
    body: String
});

const BlogPost = mongoose.model('BlogPost', BlogPostSchema);
module.exports = BlogPost

My form looks like this

<div class="container">
  <div class="row">
    <div class="col-lg-8 col-md-10 mx-auto">
      <form action="/posts/store" method="POST">
        <div class="control-group">
          <div class="form-group floating-label-form-group controls">
            <label>Title</label>
            <input
              type="text"
              class="form-control"
              placeholder="Title"
              id="title"
              name="”title”"
            />
          </div>
        </div>
        <div class="control-group">
          <div class="form-group floating-label-form-group controls">
            <label>Description</label>
            <textarea
              rows="5"
              class="form-control"
              id="body"
              name="”body”"
            ></textarea>
          </div>
        </div>
        <br />
        <div class="form-group">
          <button type="submit" class="btn btn-primary" id="sendMessageButton">
            Send
          </button>
        </div>
      </form>
    </div>
  </div>
</div>
0 Answers
Related