尝试联系 vue 3 组件内的 MongoDB 服务器时出错
Error when trying to contact MongoDB server inside a vue 3 component
我正在做一个小型业余项目,学习如何连接数据库并从中读取信息。已使用本地主机 JSON 服务器完成此操作,但想更进一步。我正在尝试连接到 Vue 3 组件内的 MongoDB 服务器。最终目标是从数据库中读取用户登录凭据并将其与表单输入进行比较。但首先,我试图获得一些简单的信息来学习基本概念。这段代码列出了我集群中的数据库,当我通过带有节点终端的 index.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 }
我在互联网上搜索了答案,有人提到这可能是因为“web pack 5”。我真的很想学习如何为 Vue 项目解决这个问题。使用 MongoDB 和 Vue3 是更好的方法吗?如果我做错了,请教训我。感谢您阅读。 :)
不太可能直接从网站连接到数据库,即使可以,也不会有人推荐这个。
要访问任何数据库,您应该在服务器端有一个 运行 代码,恶意用户无法访问它。这就是 Web 应用程序通常需要后端的原因。
我正在做一个小型业余项目,学习如何连接数据库并从中读取信息。已使用本地主机 JSON 服务器完成此操作,但想更进一步。我正在尝试连接到 Vue 3 组件内的 MongoDB 服务器。最终目标是从数据库中读取用户登录凭据并将其与表单输入进行比较。但首先,我试图获得一些简单的信息来学习基本概念。这段代码列出了我集群中的数据库,当我通过带有节点终端的 index.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 }
我在互联网上搜索了答案,有人提到这可能是因为“web pack 5”。我真的很想学习如何为 Vue 项目解决这个问题。使用 MongoDB 和 Vue3 是更好的方法吗?如果我做错了,请教训我。感谢您阅读。 :)
不太可能直接从网站连接到数据库,即使可以,也不会有人推荐这个。
要访问任何数据库,您应该在服务器端有一个 运行 代码,恶意用户无法访问它。这就是 Web 应用程序通常需要后端的原因。