我在脚本标记下的ejs文件中放置了一个文本字段
var message = document.getElementById("typing").value;
我希望此变量Message具有需要在数据库(mongodb)中搜索的关键字
我可以使用NodeJs文件连接数据库并找到我想要的东西
dbo.collection('Leave').find({$text:{$search : " those "}},{projection:{_id: 0, What_are_those:1}}).toArray(function(err, result) {.......});
但是我并不愿意将其与ejs和nodeJS连接。基本上是两者之间的连接或绑定。
答案 0 :(得分:0)
不清楚如何发布数据,但是假设您已将搜索页发布到URL“ / search”,请参考下面的代码。
确保您的应用已连接到MongoDb。 创建一条可以提交搜索词的路径(首选POST)。 Route使用猫鼬模型查询db,并将mongodb文档返回到ejs模板。
const mongoUrl = REPLACE_WITH_MONGOURL;
const mongoose = require('mongoose');
mongoose.connect(mongoUrl);
mongoose.connection.on('connected', () => {
console.log('Connected to MongoDB at: %s ', mongoUrl);
});
// assuming you post {"searchTerm": "SEARCH THIS STRING"} as body
app.post('/search', (req, res) => {
const searchTerm = req.body.searchTerm
model.find($text:{$search: searchTerm}).exec((err, doc) => {
res.render('path/to.ejs', { msg: doc });
});
});
EJS应该包含类似<%=msg.doc%>