#javascript #node.js #express
#javascript #node.js #выразить
Вопрос:
Я совсем новичок в 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:
С GET
запросами не будет req.body
; используйте req.query
вместо этого.
Кроме того, если вы хотите записать содержимое объекта в журнал, не используйте конкатенацию строк (используя
), а передайте объект в качестве отдельного аргумента console.log
(используя ,
):
console.log("User answer: ", req.query);
Комментарии:
1. Np. Также это может быть полезно прочитать. expressjs.com/en/4x/api.html#req.query и expressjs.com/en/4x/api.html#req.body чтобы увидеть разницу.