首页 > 解决方案 > NodeJS JavaScript 和 Mongo 通信

问题描述

我在脚本标签下的 ejs 文件中放置了一个文本字段

var message = document.getElementById("typing").value;

我想要这个变量 Message 具有需要在数据库中搜索的关键字(mongodb)

我可以使用 NodeJs 文件与 db 连接并找到我想要的东西

dbo.collection('Leave').find({$text:{$search : " those "}},{projection:{_id: 0, What_are_those:1}}).toArray(function(err, result) {.......});

但我无法将它与 ejs 和 nodeJS 连接起来。基本上是两者之间的联系或绑定。

标签: javascriptnode.jsmongodbejs

解决方案


目前尚不清楚您如何发布数据,但假设您将搜索页面发布到 URL“/search”,请参阅下面的代码。

确保您的应用程序已连接到 MongoDb。创建可以提交搜索词的路线(首选 POST)。Route 使用 mongoose 模型查询 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%>


推荐阅读