req.body.content, предоставляющее неопределенное значение - Express JS - PullRequest
0 голосов
/ 01 ноября 2018

Я новичок в узле и экспрессе. Я попытался создать пример API приложения для заметок.

Когда я пытался протестировать API, создав новую заметку с помощью POSTMAN, я получаю неопределенное значение req.body.title & req.body.content. Но когда я пытался утешить req.body, я получаю следующее:

 { '{"title": "Chemistry Note", "content": "Lorem ipsum note clasds"}': '' }

Я использую последнюю версию express, bodyParser, mongoose.

Это файл note.controller.js

exports.create = (req, res) => {

    console.log(req.body.title);
    // Validating request
    if(!req.body.content) {
        return res.status(400).send({
            message: "Note content cannot be empty"
        });
    }

    // Creating a Note
    const note = new Note({
        title: req.body.title || "Untitled Note",
        content: req.body.content
    });

    // Saving Note
    note.save()
        .then(data => {
            res.send(data);
        }).catch(err => {
            res.status(500).send({
                message: err.message || "Some error occurred while creating the Note."
            });
        });
};

Это файл server.js:

const express = require("express");
const bodyParser = require("body-parser");

// Creating Express Application
const app = express();

// Parse request of content-type - application/x-www-form-url-encoded
app.use(bodyParser.urlencoded({extended: true}));

// Parse request of content type - application/json
app.use(bodyParser.json());

const dbConfig = require("./config/database.config");
const mongoose = require("mongoose");

// Using native promises
mongoose.Promise = global.Promise;

// Connecting to Database
mongoose.connect(dbConfig.url, {
    useNewUrlParser: true
}).then(() => {
    console.log("Successfully connected to the database");
}).catch(err => {
    console.log("Could not connect to the database. Exiting now...", err);
    process.exit();
});

// Define a simple route
app.get('/', (req, res) => {
    res.json({"message": "Welcome to Note Application"});
});

// Require Notes routes
require("./app/routes/note.routes.js")(app);

// Listen for requests
app.listen(3000, () => {
    console.log("Listening on port 3000");
});

Ниже находится файл note.model.js:

const mongoose = require("mongoose");

// Defining Schema
const NoteSchema = mongoose.Schema({
    title: String,
    content: String
}, {
    timestamps: true
});

// Creating Model with this schema
module.exports = mongoose.model('Note', NoteSchema);

Ниже находится файл note.routes.js:

module.exports = (app) => {

    // Contains the methods for handling CRUD operations
    const notes = require("../controllers/note.controller.js");

    // Creating new Note
    app.post('/notes', notes.create);
};

Пожалуйста, помогите, спасибо. Любая помощь будет оценена.

1 Ответ

0 голосов
/ 01 ноября 2018
{ '{"title": "Chemistry Note", "content": "Lorem ipsum note clasds"}': '' }, 
it's not a object you want. 
For this json your key is '{"title": "Chemistry Note", "content": "Lorem ipsum note clasds"}'. 
And its don't have any key like title, content.

Change above object to
{"title": "Chemistry Note", "content": "Lorem ipsum note clasds"}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...