这是在我的EJS文件中,其中指出未声明消息。 我希望在文本字段中编写的Thing可以在JS文件中进行键搜索,以进行进一步的操作。
<script>
$(document).ready(function ajx()
{
$("input").on("keydown",function (e)
{
if(e.keyCode == 13)
{
e.preventDefault();
message = document.getElementById("typing").value;
var iDiv = document.createElement('div');
iDiv.id = 'chatContent';
$("span")[0].appendChild(iDiv).innerHTML=message;
this.value="";
var data = {username:'user101'};
console.log(data);
$.ajax(
{
type: 'POST',
data: JSON.stringify(data),
url: 'http://localhost:8800/',
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>
<!-- </form> -->
</div> <!-- end chat -->
<input type="text" id="typing" onkeydown="ajx()">
这是我使用Message变量发布内容的JS文件。如果我删除ajax类型:post,那么我将使用输入的内容进行键搜索来打印数据库的最后一行而不是整个数据库上面代码中的文本字段。
var MongoClient = require('mongodb').MongoClient;
var url ="mongodb://localhost:27017/Chatbot_Project";
MongoClient.connect(url, function(err, client)
{
if (err) throw err;
db = client.db("Chatbot_Project");
var data = db.collection('Question').find();
data.forEach(function (results, err)
{
if(err)
{
console.log(err);
}
var string = JSON.stringify(results);
console.log(string);
});
});
module.exports = function (app)
{
app.get('/' , function(req,res)
{
res.render('index');
})
app.post('/' , function (req , res)
{
const searchTerm = req.body.message;
db.find({$text:{$search : searchTerm }},{projection:{_id: 0, What_are_those:1}}).exec((err,str_ID) =>
{
res.send('index',{message:str_ID});
})
});
}
答案 0 :(得分:0)
我认为将'message ='更改为'var message ='将摆脱错误。当前,您正在将其设置为全局变量,与“ window.message =”相同,这在模块文件中是不允许的,并且通常被认为是不好的做法。