下面的代码是使用html,expressJS生成一个web表单,并保存在MongoDB中提交的细节,但有'后'错误和'get'作品
“post”正在从邮递员处开始工作,并在浏览器中input“localhost:3000”并input条目(名称,电子邮件地址)并点击“提交”button时,在数据库中创build一个带有对象ID的文档。而不是在mongo数据库中创build一个对象。
html代码:
<!DOCTYPE html> <html> <head> <title>formReg</title> </head> <body> <form name='regForm' method ='post' action ='/add'> username: <input type='text' name='username' required/><br> email: <input type='email' name='email' required/><br> address: <textarea rows='5' col='10' name='address'></textarea><br> <button type ='submit' value='submit'>submit</button> </form> </body> </html>
这段代码是和数据库html进行交互的。
var express = require("express"); var app = express(); var port = 3000; var bodyParser = require('body-parser'); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({extended: true})); var mongoose =require('mongoose'); mongoose.Promise = global.Promise; mongoose.connect('mongodb://localhost:27017/node-user'); var nameSchema = new mongoose.Schema({ username: {type: String, unique: true}, email:{type: String}, address:{type: String} }); var User = mongoose.model("User", nameSchema); app.get('/', (req, res)=>{ res.sendFile(__dirname+'/form1.html'); }); app.post('/add', (req, res)=>{ var username= req.body.username; var email = req.body.email; var address = req.body.address; var myData = new User(); myData.username = username; myData.email = email; myData.address = address; myData.save().then((item)=>{ res.send('item saved'); },(err)=>{ res.status(400).send('unable to save'); }); }); app.listen(port, ()=>{ console.log("server is on port "+port); })
我在这里看到两个问题:
-
表单字段名称是'用户名',但mongoose模型字段名称是'用户名'
-
地址textarea没有
name
属性(name="address"
),所以它没有在表单中提交。
- 为什么Chrome将这个HTML作为一个完全空白的页面? 从Node.js,继节点初学者书
- 如何使用jquery和selenium在'chrome:// downloads'下访问`shadow-root`下的元素?
- 如何将html呈现到页面中,而不是将整个视图呈现为Node.js + express应用程序?
- 如何更新我的dynamic网页内容,而无需重新加载整个页面使用Ajax,jQuery的,JavaScript的
- MEAN堆栈,angular度基本示例不起作用
- 电子:如何只在电子中静电印制html(div)的一部分?
- 如何与node.js一起使用jQuery ajax调用
- nodejs由多个具有相同名称的input组成
- 使用NodeJS和JSDOM / jQuery从片段构build一个PHP页面