javascript - 使用 Mongoose 和 Express 未将两个 Document 属性之一插入到 mongoDB 集合中
问题描述
Nodejs 服务器应用程序从 HTML 表单(使用 post 方法)获取名称和年龄,并在 ExpressJS 的帮助下,Mongoose 必须创建一个 MongoDB 文档。这行得通,但年龄没有写在集合的文档中。请帮我修复它。
以下是带有代码的文件:personform.html 位于:C:\Program Files\nodejs\myapp\public 4.6-mongo.js 在:C:\Program Files\nodejs\myapp Person.js(猫鼬模式和 MongoDB 连接详细信息)放置在:C:\Program Files\nodejs\myapp created.ejs(ejs)在:C:\Program Files\nodejs\myapp\views MongoDB 安装在:C:\Program Files
personform.html
<html>
<body>
<form action='/create' method='post'>
Name: <input name='name'>
<p>
Age: <input age='age'>
<p>
<input type=submit value='Submit Form!'>
</form>
</body>
</html>
4.6-mongo.js
var express = require('express');
var app = express();
app.set('view engine', 'ejs');
var bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({ extended: true }));
var Person = require('./Person.js');
app.use('/create', (req, res) => {
var newPerson = new Person ({
name: req.body.name,
age: req.body.age,
});
newPerson.save( (err) => {
if (err) {
res.type('html').status(500);
res.send('Error: ' + err);
}
else {
res.render('created', {person : newPerson});
}
} );
});
app.use('/public', express.static('public'));
app.use('/', (req, res) => { res.redirect('/public/personform.html'); } );
app.listen(8000, () => {
console.log('Listening on port 8000');
});
人.js
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost:27017/mydatabase');
var Schema = mongoose.Schema;
var personSchema = new Schema({
name: {type: String, required: true, unique: true},
age: Number
});
module.exports = mongoose.model('Person', personSchema);
personSchema.methods.standardizeName = function() {
this.name = this.name.toLowerCase();
return this.name;
}
创建的.ejs
解决方案
问题在于您的表格,特别是您的年龄输入。它应该是name="age"
<form action='/create' method='post'>
Name: <input type="text" name='name'>
<p>
Age: <input type="text" name='age'>
<p>
<input type=submit value='Submit Form!'>
</form>
推荐阅读
- regex - 仅在存在某些子字符串的情况下使用非捕获组
- sql - Big Query 提取层次结构
- html - 禁用按钮仍会触发保存方法角度 HTML
- html - 向左填充后 HTML 列换行
- ios - 委托和数据源在 MessageKit Swift IOS 中没有工作
- sass - WebStorm 指向不存在的 SCSS 模块导入错误
- reactjs - ReactJs AutoComplete 未使用 antd 显示在下拉列表中
- java - 如何找到 Guava 公共后缀版本
- r - 使用两个比例的功效计算的小样本量误差
- python - raise ValueError("形状 %s 和 %s 不兼容" % (self, other))