我需要建立一个查询我当地mongodb的小网站。所有应该只在localhost上正常工作。因此我决定从NodeJS开始。因此,当我单独运行它们时,所有javascript函数都正常工作,但如果我通过我的html代码调用此函数,我会得到一个ReferenceError: require is not defined
以及之后的TypeError: MongoClient is undefined
因此,为了您的理解,我将发布几行代码:
我的脚本 - 在html中导入:
<script src="scripts/queryDB.js"></script>
我的按钮
<button onclick="startQuery()" class="mdl-button mdl-js-button mdl-button--fab mdl-js-ripple-effect mdl-button--colored">
<i class="material-icons">search</i>
</button>
如果您需要有关我的HTML的更多信息,请询问。
var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/";
function oneResult(parkhausName, jahr, monat, tag, minuten) {
MongoClient.connect(url, function(err, db) {
if (err) throw err;
var dbo = db.db("nosqlvl");
var query = { parkhausName: parkhausName, 'datetime.year': jahr, 'datetime.month': monat, 'datetime.day': tag, 'datetime.time': minuten};
dbo.collection("parkhaus").find(query).toArray(function(err, result) {
if (err) throw err;
console.log(result);
db.close();
});
});
}
function startQuery(){
alert("Really start?");
oneResult("LANXESS arena 1", "2018", "1", "2", 680);
}
所以我不知道问题是什么,但也许你们中的一个可以帮助我。请原谅我的坏英语。谢谢
答案 0 :(得分:0)
。
您可以使用RequireJS
实际上,你不能也不应该这样做。 mongodb
驱动程序不适用于浏览器。这是因为,通常,您不会直接从网站向数据库发送查询。
相反,你应该运行一个nodeJS http服务器,它可以从前端接收HTTP请求,然后像你已经那样查询数据库,并将结果发送回前端。
我建议使用express
和ajax
,如this教程中所述。
答案 1 :(得分:0)
为什么不使用AJAX请求?您可以在此处找到更多信息:Ajax requests。通常,当您想要将前端与后端连接时,您应该使用ajax请求。