使用mongodb提交后,插入更多然后表单信息

时间:2016-10-13 17:30:31

标签: javascript mongodb

我有一个简单的表格:

  <form action="/persons" method="POST">
    Name:<input type="text"  name="name"><br>
    URL:<input type="text"  name="quote"><br>
    <button type="submit">Submit</button>
  </form>

我使用mongodb将名称和URL存储到数据库中:

app.post('/persons', (req, res) => {
    db.collection('persons').save( req.body, (err, result) => {
        if (err) return console.log(err)
        console.log('saved to database')
        console.log(req.body)
        res.redirect('/')
    })
})

现在,对于每个网址和&amp; name我希望文档包含更多的值(用户不插入),比如比率,应该在用户发送“submit”后插入到db中。

例如,给定一些网址和名称“Jessica Alba”,我希望文档包含: {url:....,名称:Jessica Alba,比率:0}

我尝试了不同的事情但未能成功。什么是最好的选择?

1 个答案:

答案 0 :(得分:3)

可以使用点运算符访问Json对象的属性。

节点文件:

var express = require('express');
var bodyParser = require('body-parser');
var path = require('path');
var MongoClient = require('mongodb').MongoClient;

MongoClient.connect('mongodb://localhost:27017/test',connectCallback);
function connectCallback(err, db) {
  col = db.collection('persons');
  console.log('Connected to mongodb');
  }

var app = express();
//middlewares
app.use(bodyParser());
//routes
app.get('/', function (req, res) {
  res.sendFile(__dirname+'/index.html');
});
app.post('/persons', (req, res) => {
    req.body.ratio=0
    col.save( req.body, (err, result) => {
        if (err) 
            return console.log(err)
        console.log(result)
        console.log('saved to database')
        console.log(req.body)
        res.redirect('/')
    })
})
setTimeout(function() {
    app.listen(3000, function () {
    console.log('Sample app listening on port 3000!');
    });
}, 1000);

Index.html文件:

<html>
    <body>
        <form action="/persons" method="POST">
            Name:<input type="text"  name="name"><br>
            URL:<input type="text"  name="quote"><br>
            <button type="submit">Submit</button>
        </form>
    </body>
</html>