Ошибка типа: невозможно прочитать свойство 'c' из неопределенного - PullRequest
0 голосов
/ 03 апреля 2020

Я пытаюсь добавить базовый c комментарий, но он показывает свойство undefined

TypeError: Cannot read property 'c' of undefined
    at d:\New folder\app.js:19:21
at Layer.handle [as handle_request] (d:\New folder\node_modules\express\lib\router\layer.js:95:5)


app.js

var express = require("express");
var app = express();
var bodyparser = require("body-parser");
app.set("view engine", "ejs");
var mongoose = require("mongoose");
mongoose.connect("mongodb://localhost:27017/exam", { useNewUrlParser: true, useUnifiedTopology: true });
var examSchema = new mongoose.Schema({
    t: String
});
var Exam = mongoose.model("Exam", examSchema);
// Exam.create({
//     t: "hello"
// });
app.get("/", function(req, res) {
    res.redirect("/c/n");
});
app.post("/c", function(req, res) {
    Exam.create({
        t: req.body.c
    });
    res.redirect("/");
});
app.get("/c/n", function(req, res) {
    Exam.find({}, function(err, all) {
        if (err) {
            console.log(err);
        } else {
            res.render("show", { exams: all });
        }
    })
});

app.listen("3000", function() {
    console.log("server started");
});


show.ejs

<form action="/c" method="post">
    <input class="form-control" type="text" name="c" placeholder="comment">
    <button type="submit">submit</button>
</form>
<% exams.forEach(function(t){%>
    <p>-
        <%=t.t%>
    </p>
    <%});%>

1 Ответ

0 голосов
/ 03 апреля 2020

Проблема

Привет, я думаю, проблема в том, что вы потребовали body-parser, но не настроили его.

Решение

Скажите app, чтобы используйте body-parser

app.use(bodyparser.json()); // support json encoded bodies
app.use(bodyparser.urlencoded({ extended: true })); // support encoded bodies

Для информации см. Здесь

...