我是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('/');
});
});
答案 0 :(得分:3)
对GET
次请求,不会有req.body
;请改用req.query
。
此外,如果要记录对象的内容,请不要使用字符串连接(使用+
),而是将对象作为单独的参数传递给console.log
(使用{{1 }}):
,