Данные формы пользователя и базы данных, сравнивающие Mongodb - PullRequest
0 голосов
/ 04 июня 2018

У меня есть следующая HTML-форма

 <form id="contact-form" method="POST" action="/search">
            <label for="company">Phone company</label>
            <input type="text" name="company" value="">
            <br>
            <label for="modelname">Model name</label>
            <input type="text" name="modelname" value="">
            <br>
            <label for="numbername">Model number</label>
            <input type="text" name="numbername" value="">
            <br>
            <input type="submit" value="Search">
        </form>

Схема телефона

const mongoose = require('mongoose');
const Schema = mongoose.Schema;

const phoneSchema = new Schema({
    company: String,
    modelname: String,
    numbername: String,
    picture: String,
    price: String,
});

const Phone = mongoose.model('phone', phoneSchema);

module.exports = Phone;

Например, у меня есть следующий телефон в моей базе данных:

{
    "_id" : ObjectId("5b155a66aced9b079c276ba0"),
    "company" : "Samsung",
    "modelname" : "Galaxy",
    "numbername" : "S5",
    "picture" : "https://drop.ndtv.com/TECH/product_database/images/2252014124325AM_635_samsung_galaxy_s5.jpeg",
    "price" : "12500P",
    "__v" : 0
}

Отправить запрособработчик

    app.post('/search', urlencodedParser, function(req, res){
    console.log(req.body);
    Phone.findOne({company: req.body.company, modelname: req.body.modelname, numbername: req.body.numbername}).then(function(){
        .......

})});

Если компания, имя модели, номер в этой форме совпадают с теми же полями базы данных, то мне нужно отобразить страницу со всей информацией из базы данных (например, компания + фотография + цена). Как я могу сравнитьданные формы и базы данных?

1 Ответ

0 голосов
/ 11 июня 2018

Насколько я понимаю, вы пытаетесь передать информацию о базе данных обратно на страницу HTML.Я думаю, что этот вопрос аналогичен следующему: Как мне обслуживать частично динамические HTML-страницы с помощью Express? Если вам нужно отфильтровать все, что вы можете сделать, с запросами, дополнительную информацию можно найти здесь Как получить переменные GET (строки запроса) в Express.js на Node.js? Если вам нужно какое-то хакерское решение, вы можете отправить запрос xHTTP на ваш сервер и проанализировать ответ

<script>
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
        var data = JSON.parse(xhttp.responseText);
        console.log(data)
    }
}
xhttp.open("POST", '/search', true);
xhttp.send();
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...