代码之家  ›  专栏  ›  技术社区  ›  Kim Oliver Andersson

尝试联系vue 3组件内的MangoDB服务器时出错

  •  0
  • Kim Oliver Andersson  · 技术社区  · 2 年前

    我正在做一个小爱好项目,学习如何连接和读取数据库中的信息。我们已经用本地主机JSON服务器实现了这一点,但希望更进一步。我正在尝试连接到Vue 3组件中的MongoDB服务器。最终目标是从数据库中读取用户登录凭据,并将其与表单中的输入进行比较。但首先,我试图获得一些简单的信息来学习基本概念。这段代码列出了集群中的数据库,当我通过索引运行它时,它可以正常工作。带有节点终端的js文件(假连接字符串除外)。

      const {
            MongoClient
        } = require('mongodb');
        
        async function main() {
            const uriTest = "mongodb+srv://notRealUser:password@cluster0.p3imp.mongodb.net/database?authSource=admin&retryWrites=true&w=majority"
            const client = new MongoClient(uriTest);
            try {
                await client.connect();
                await listDatabases(client);
                console.log("Connected correctly to server");
            } catch (e) {
                console.error(e);
            } finally {
                await client.close();
            }
        }
        
        main().catch(console.error);
        
        async function listDatabases(clients) {
            const databasesList = await clients.db().admin().listDatabases();
            databasesList.databases.forEach(db => console.log(`${db.name}`));
        }
    

    但每当我想在Vue 3应用程序中运行它时,就会出现一个很长的错误。我发现了大约27个类似的错误:

    If you want to include a polyfill, you need to:
        - add a fallback 'resolve.fallback: { "stream": require.resolve("stream-browserify") }'
        - install 'stream-browserify'
    If you don't want to include a polyfill, you can use an empty module like this:
        resolve.fallback: { "stream": false }
    

    我在网上搜索答案,有人提到这可能是因为“网络包5”。我真的很想学习如何为Vue项目解决这个问题。使用MongoDB和Vue3是更好的方法吗?如果我做错了,请教训我。感谢您的阅读。:)

    1 回复  |  直到 2 年前
        1
  •  1
  •   Shivam    2 年前

    直接从网站连接到数据库是不可能的,即使有可能,也没有人会推荐。

    要访问任何数据库,您应该有一个在服务器端运行的代码,恶意用户无法访问它。这就是为什么web应用程序通常需要后端。