NodeJS进行交流

时间:2018-07-11 11:40:37

标签: javascript node.js mongodb ejs

MongoClient.connect(url, function(err, client) 
{
    if (err) throw err;
    db = client.db("Chatbot_Project");
    var data = db.collection('Questions').find();
    data.forEach(function (results, err)
    {
      if(err)
      {
          console.log(err);
      }
      var string = JSON.stringify(results);
      global.str = string.substring(string.indexOf("Apply")+9  , string.indexOf("Where To Apply")-3 );
      // console.log(str);
    }); 
});

module.exports = function (app)
{

app.get('/' , function (req , res)
{
    res.render('index', { message: str});
}); 

app.post('/' ,urlencodedParser, function(req,res)
{
    var typing=JSON.stringify(req.body);
    var typed =typing.substring(2,typing.indexOf(":")-1)
    db.collection('Questions').find({$text:{$search:typed}},{projection:{_id: 0, "How To Apply":1,"Where To Apply":1}}).toArray(function(err, result) 
    {
        if(err)
            console.log(err);
        var responding =JSON.stringify(result).substring(JSON.stringify(result).indexOf("Apply")+9 , JSON.stringify(result).indexOf(",")-2)
        console.log(responding);
        // res.redirect({message:responding},'/');
        // res.write('',{msg:responding})
        // res.redirect('/?valid=' + string);
    })
})

}

我已经在Node.Js中编写了以上代码。我想呈现我从帖子中获得的结果,但这样做时会出错。我只能渲染GET方法的结果,该方法最终只会在启动时加载,并且在运行时保持不变。

   <script>
            $(document).ready(function ajx() {
                $("input").on("keydown", function(e) {
                    if (e.keyCode == 13) {
                        e.preventDefault();
                        var message_typed = document.getElementById("typing").value;
                        var iDivServer = document.createElement('div');
                        iDivServer.id = 'chatContent';
                        $("span")[0].appendChild(iDivServer).innerHTML = message_typed;

                        var iDivClient = document.createElement('div');
                        iDivClient.id = 'chatContent_1';
                        $("span")[0].appendChild(iDivClient).innerHTML = "<%=message%>";

                        this.value = "";
                        var data = {username: 'user101'};
                        console.log(data);

                        $.ajax({
                            type: 'POST',
                            data: message_typed,
                            url: 'http://localhost:8800/',
                            success: function(message) 
                            {}
                        });

                        $.ajax({
                            success: function(data) {
                                console.log('success');
                                console.log(JSON.stringify(data));
                                // document.getElementById('chatContent').innerHTML = "<%=message%>";
                            }
                        });


                    }
                })
                $("input").on("focus", function(e) {
                    document.getElementById("chat-feedback").innerHTML = "<p><i>Typing....</i></p>"
                });
                $("input").on("blur", function(e) {
                    document.getElementById("chat-feedback").innerHTML = "<p id='ignore'>........</p> ";
                });
            });
            </script>

我可以得到一些类似的信息吗,之后我去GET并渲染我想要的结果。因此,在我每次输入txt后,都会得到POST响应,然后根据它得到GET的回复

如果我输入“ <%= message%>”;在发布它给EJS文件中未定义的错误。 如果我将它放在GET中,它会给我带来静态结果

0 个答案:

没有答案