我正在关注here上有关mongodb的教程。这只是一个提交表单,其中将一个人的姓名,年龄和国籍添加到了数据库中。但是我收到以下错误:
TypeError:无法读取未定义的属性“名称”
在/home/me/Desktop/nodejs/mongoose-example/index.js:24:18
因此,似乎不想将req.body解析为personInfo。这是程序:
const express = require('express');
const app = express();
app.set('view engine','pug');
app.set('views','./views');
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/my_db');
var personSchema = mongoose.Schema({
name: String,age: Number,nationality: String
});
var Person = mongoose.model("Person",personSchema);
app.get('/person',function(req,res){
res.render('person');
});
app.post('/person',res){
var personInfo = req.body; // Get the parsed information
if (!personInfo.name || !personinfo.age || !personInfo.nationality){
res.render('show_message',{
message: "Sorry,you provided wrong info",type: "error"});
} else {
var newPerson = new Person({
name: personInfo.name,age: personInfo.age,nationality: personInfo.nationality
});
newPerson.save(function(err,Person){
if(err)
res.render('show_message',{message: "Database error",type: "error"});
else
res.render('show_message',{
message: "New person added",type: "success",person: personInfo});
});
}
});
app.listen(3000);
这是person.pug:
html
head
title Person
body
form(action = "/person",method = "POST")
div
label(for = "name") Name:
input(name = "name")
br
div
label(for = "age") Age:
input(name = "age")
br
div
label(for = "nationality") Nationality:
input(name = "nationality")
br
button(type = "submit") Create new person