首页 > 解决方案 > 未捕获的 ReferenceError:未定义 mongoDB.js

问题描述

在我的 IntelliJ 终端中,我可以调用“node mongoDB.js”并在我的数据库中检索示例数据。但是,当我启动 index.html 页面时,在控制台屏幕上出现错误:“Uncaught ReferenceError: require is not defined mongoDB.js:1 at mongoDB.js:1” 我试图查看是否按钮对 javascript 错误不起作用,但能够显示硬编码的单词。任何帮助,将不胜感激。下面的代码:


async function main() {
    const uri = "mongodb+srv://<usr>:<pass>@cluster0.dfgj3.mongodb.net/myFirstDatabase?retryWrites=true&w=majority";

    const client = new MongoClient(uri);

    try {
        await client.connect();

        await listDatabases(client);
    } catch (e){
        console.error(e);
    } finally {
        await client.close();
    }
}

main().catch(console.error);

async function listDatabases(client) {
    const databasesList = await client.db().admin().listDatabases();
    console.log("Databases:");
    databasesList.databases.forEach(db => console.log(` - ${db.name}`));
};

 function displayQuery() {
    let text1 = "Hello";

    document.getElementById("query").innerHTML = text1;
}

displayQuery();
<html>
    <head>
        <meta charset="UTF-8">
        <title>TITLE</title>
        <script src="fetchAPI.js" type="text/javascript"></script>
        <script src="mongoDB.js" type="text/javascript"></script>
        <link href="styles.css" rel="stylesheet">
    </head>
        <body>
            <div class="my-grid">
            <p class="span-three">
                NOTE: ticker AAPL is just arbitrary
                Stock: <input id = "ticker" value = "AAPL"></input>
                <br/>
                <button onclick="displayQuery()" id= "submit" >Submit</button>
                <p id="query"></p>
            </p>
            </div>
        </body>
</html>

标签: javascripthtmlnode.jsmongodb

解决方案


MongoDB 只是服务器端。您正在尝试在首页中调用它。这些是不同的东西。

为了让您的网页从您的数据库加载数据,您应该创建一个 API。该 api 将检索数据并将其发送回给您

这是来自官方论坛的链接 https://www.mongodb.com/community/forums/t/why-doesnt-mongodb-work-with-client-side-js/9062


推荐阅读