NodeJs, mongoDB: TypeError: Невозможно прочитать свойство 'полное имя' из неопределенного - PullRequest
0 голосов
/ 30 октября 2018

Я хочу сохранить данные , введенные в форме HTML, в mongoDB , но при этом отображается сообщение об ошибке - "Ошибка типа: невозможно прочитать свойство 'полное имя' из неопределенного"

TypeError: Невозможно прочитать свойство 'fullname' из undefined в C: \ Users \ admin \ Desktop \ workspace \ lp \ server.js: 52: 24 при обратных вызовах (C: \ Users \ Admin \ Desktop \ рабочее пространство \ LP \ node_modules \ экспресс \ Lib \ маршрутизатора \ index.js: 164: 37) в парам (C: \ Users \ Admin \ Desktop \ рабочее пространство \ LP \ node_modules \ экспресс \ Lib \ маршрутизатора \ index.js: 138: 11) на проходе (C: \ Users \ Admin \ Desktop \ рабочее пространство \ LP \ node_modules \ экспресс \ Lib \ маршрутизатор \ index.js: 145: 5) в Router._dispatch (C: \ Users \ администратор \ Desktop \ рабочее пространство \ LP \ node_modules \ экспресс \ Lib \ маршрутизатора \ index.js: 173: 5) в Object.router [как дескриптор] (C: \ Users \ администратор \ Desktop \ рабочее пространство \ LP \ node_modules \ \ Lib выразить \ \ маршрутизатор index.js: 33: 10) на следующем (C: \ Users \ Admin \ Desktop \ рабочее пространство \ LP \ node_modules \ подключения \ Lib \ proto.js: 193: 15) в Object.staticMiddleware [как дескриптор] (C: \ Users \ Admin \ Desktop \ рабочее пространство \ LP \ node_modules \ сети \ Lib \ \ static.js промежуточного слоя: 55: 61) на следующем (C: \ Users \ Admin \ Desktop \ рабочее пространство \ LP \ node_modules \ подключения \ Lib \ proto.js: 193: 15) в Object.expressInit [как дескриптор] (C: \ Users \ Admin \ Desktop \ рабочее пространство \ LP \ node_modules \ экспресс \ Lib \ middleware.js: 30: 5) на следующем (C: \ Users \ Admin \ Desktop \ рабочее пространство \ LP \ node_modules \ подключения \ Lib \ proto.js: 193: 15) в Object.query [как дескриптор] (C: \ Users \ Admin \ Desktop \ рабочее пространство \ LP \ node_modules \ подключения \ Lib \ промежуточного слоя \ query.js: 45: 5) на следующем (C: \ Users \ Admin \ Desktop \ рабочее пространство \ LP \ node_modules \ подключения \ Lib \ proto.js: 193: 15) в Function.app.handle (C: \ Users \ Admin \ Desktop \ рабочее пространство \ LP \ node_modules \ подключения \ Lib \ proto.js: 201: 3) в Server.app (C: \ Users \ Admin \ Desktop \ рабочее пространство \ LP \ node_modules \ подключения \ Lib \ connect.js: 65: 37) в emitTwo (events.js: 126: 13) в Server.emit (events.js: 214: 7) в parserOnIncoming (_http_server.js: 634: 12) в HTTPParser.parserOnHeadersComplete (_http_common.js: 117: 17)

Похоже, все правильно, но я не знаю, где я не прав. Пожалуйста, помогите мне, чтобы очистить эту ошибку.

server.js

var express = require("express");
var app = express();
var path = require("path");
"use strict";
const mongoose = require("mongoose");
mongoose.connect("mongodb://localhost:27017/lp", {useNewUrlParser: true});
mongoose.set("useCreateIndex", true);
mongoose.Promise = global.Promise;
var Schema = mongoose.Schema;
var engines = require("consolidate");
app.use(express.static(path.join(__dirname, "public")));
app.set("views", __dirname + "/views");
app.engine("html", engines.mustache);
app.set("view engine", "html");
var enrollDataSchema = new Schema({
    fullname: {type: String},
    emailId: {
        type: String,
        required: true,
        unique: true
    },
    phone: {
        type: Number,
        required: true
    }
});
var EnrollData = mongoose.model("EnrollData", enrollDataSchema);
app.get("/", function (req, res) {
    res.render("index.html");
});
app.post("/enrollform", function (req, res) {
    var userinfo = {
        fullname: req.body.fullname,
        email: req.body.emailId,
        contact: req.body.phone
    };
    var data = new EnrollData(userinfo);
    data.save(function (err, result) {
        if (err) {
            console.log(err);
        } else {
            res.render("thankyou.html");
        }
    });
});
app.listen(8000);
console.log("Running at Port 8000");

index.html

<form id="enroll" name="enroll" method="POST" action="/enrollform">
    <input type="text" name="fullname" id="fullname" class="form-control" placeholder="Full Name" required=""/> 
    <input type="email" name="emailId" id="emailId" class="form-control" placeholder="Email ID " required=""/> 
    <input id="phone" name="phone" placeholder="Phone no" type="tel">
</form> 

Выход

Вот мой вывод сообщения об ошибке

1 Ответ

0 голосов
/ 30 октября 2018

Можете ли вы попробовать использовать модуль body-parser .

var bodyParser = require('body-parser')

// parse application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({ extended: false }))

// parse application/json
app.use(bodyParser.json())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...