Express app.get:req.body返回值的类型而不是实际值

时间:2016-10-21 14:26:21

标签: javascript node.js express

我是Express和一个项目的新手。我有4个单选按钮代表用户答案。我已将正确答案存储在MongoLabs数据库中,我检索并登录app.get()函数。我想根据这些正确答案检查用户答案。但是,当我记录req.body时,我会[object Object]

的index.html:

<!DOCTYPE html>
<head>
    <title>Online Testing Website</title>
</head>
<body>
<div id="question">
    <p>This is my first question</p>
    <br>
</div>
<div id="answer">
    <form action="/answer" method="get">
        <input id="a" type="radio" name="ans" value="A" >A<br>
        <input id="b" type="radio" name="ans" value="B" >B<br>
        <input id="c" type="radio" name="ans" value="C" >C<br>
        <input id="d" type="radio" name="ans" value="D" >D<br><br><br>
        <button type="submit">Submit</button>
    </form>
</div>

<script type="text/javascript" src="./server.js"></script>    

</body>
</html>

server.js

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

app.use(bodyParser.urlencoded({extended: true}));

var db;

app.get('/', function (req, res) {
    res.sendFile(__dirname + '/index.html');
});

mongo.connect('mongodb://deodhar:deodhar@ds015636.mlab.com:15636/correct-answers', function (err, database) {
    if(err){
        return console.log('mongo connect if: ' + err);
    }
    db = database;
    app.listen(8080, function () {
        console.log("Listening on 8080");
    });
});


app.get('/answer', function (req,res) {
    console.log("User answer: " + req.body);
    var cursor = db.collection('answers').find().toArray(function (req,result) {
        console.log(result);
        res.redirect('/');
    });
});

1 个答案:

答案 0 :(得分:3)

GET次请求,不会有req.body;请改用req.query

此外,如果要记录对象的内容,请不要使用字符串连接(使用+),而是将对象作为单独的参数传递给console.log(使用{{1 }}):

,