【发布时间】:2021-04-19 01:19:45
【问题描述】:
我是 Mongo 的新手,我正在做一个教程,我可以让它工作。当我尝试导入数据时,我一直在控制台上看到此错误。
> proshop@1.0.0 data:import
> node backend/seeder
the options [useCrateIndexes] is not supported
(node:40078) DeprecationWarning: collection.ensureIndex is deprecated. Use createIndexes instead.
(Use `node --trace-deprecation ...` to show where the warning was created)
MongoDB Connected: cluster0-shard-00-02.8p56h.mongodb.net
ValidationError: isAdmin: Path `isAdmin` is required.
npm ERR! code 1
npm ERR! path /Users/googledrive/Documents/proshop
npm ERR! command failed
npm ERR! command sh -c node backend/seeder
npm ERR! A complete log of this run can be found in:
npm ERR! /Users/googledrive/.npm/_logs/2021-01-14T00_02_04_851Z-debug.log
❯ node --trace-deprecation ...
node:internal/modules/cjs/loader:928
throw err;
^
Error: Cannot find module '/Users/googledrive'
at Function.Module._resolveFilename (node:internal/modules/cjs/loader:925:15)
at Function.Module._load (node:internal/modules/cjs/loader:769:27)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:76:12)
at node:internal/main/run_main_module:17:47 {
code: 'MODULE_NOT_FOUND',
requireStack: []
}
这是我的数据库的配置文件
import mongoose from 'mongoose';
import colors from 'colors';
const connectDB = async () => {
try {
const conn = await mongoose.connect(process.env.MONGO_URI, {
useUnifiedTopology: true,
useNewUrlParser: true,
useCreateIndex: true,
});
console.log(`MongoDB Connected: ${conn.connection.host}`.cyan.underline);
} catch (error) {
console.error(`Error: ${error.message}`.red.underline.bold);
process.exit(1);
}
};
我尝试将 useCreateIndex: true 替换为 useCreateIndexes: true,但它不起作用。我正在使用 mongoatlas。我阅读了我的所有代码,但找不到错误
import mongoose from 'mongoose';
import dotenv from 'dotenv';
import colors from 'colors';
import users from './data/users.js';
import products from './data/products.js';
import User from './models/userModel.js';
import Product from './models/productModel.js';
import Order from './models/orderModel.js';
import connectDB from './config/db.js';
dotenv.config();
connectDB();
const importData = async () => {
try {
await Order.deleteMany();
await Product.deleteMany();
await User.deleteMany();
const createdUsers = await User.insertMany(users);
const adminUser = createdUsers[0]._id;
const sampleProducts = products.map((product) => {
return { ...product, user: adminUser };
});
await Product.insertMany(sampleProducts);
console.log('Data Imported!'.green.inverse);
process.exit();
} catch (error) {
console.error(`${error}`.red.inverse);
process.exit(1);
}
};
const destroyData = async () => {
try {
await Order.deleteMany();
await Product.deleteMany();
await User.deleteMany();
console.log('Data Destroyed!'.red.inverse);
process.exit();
} catch (error) {
console.error(`${error}`.red.inverse);
process.exit(1);
}
};
if (process.argv[2] === '-d') {
destroyData();
} else {
importData();
}
这是教程的github仓库https://github.com/bradtraversy/proshop_mern/blob/master/backend/config/db.js
【问题讨论】:
-
你好,可以分享一下解决方法吗?我也遇到了。