在快递帖子中发出mongoose请求?

时间:2017-01-01 04:21:59

标签: javascript node.js mongodb express mongoose

我想使用从<form>内的HTML post获取的查询来请求我的MongoDB数据库,这有点棘手......

这是我的HTML:

<!DOCTYPE html>

<html>
    <head>
        <link rel="stylesheet" href="interface.css" />
        <meta charset="UTF-8" />
        <title>Bienvenue sur MongoDB !</title>
    </head>

    <body>    
        <form method="post" action="/" id="formulaire">
            <p>
                <label for="rectangle">Nombre de rectangles maximum :</label>
                <input type="range" min="0" max="10" id="rectangle" name="rectangle" />
                <span id="texte1"></span>
            </p>

            <input type="submit" id="envoyer" value="Envoyer" />
        </form>
    </body>
</html>

这是我的Javascript:

var mongoose = require('mongoose');
var express = require('express');
var bodyParser = require('body-parser');

mongoose.connect('mongodb://localhost/image', function(err) {
  if (err) {
    throw err;
  }
});

var app = express();

app.use(bodyParser.urlencoded({
    extended: true
}));
app.use(bodyParser.json());
app.post('/', function (req, res) {    
    var query = Image.find(null);

    query.lte('NbRectangles', req.body.rectangle)

    query.exec(function (err, images) {
      if (err) {
        throw err;
      }

      for (var i = 0, l = images.length; i < l; i++)
        console.log('Image : ' + images[i]);
    });
});

app.listen(8080);

mongoose.connection.close();

这个,什么都没显示......

我的MongoDB系列不是空的我只是删除了一些代码,我做了测试,当我把部件放在post内外时,它可以工作但我想要的是每次我点击按钮它在终端上显示请求的结果。

提前谢谢你......

1 个答案:

答案 0 :(得分:1)

当您收到请求时,您的连接似乎已关闭。您应该在执行查询后关闭连接。此外,您应检查您的身体是否为空,并在处理完请求后发送回复:res.sendStatus(200)