我是初学者,想使用nodejs和mongoDB(mongoose)练习CRUD。 只有一个集合(员工)连接到现有代码,我们想添加另一个集合(例如传感器)。
参考文字
使用我的项目文件夹
Node.js-Expess-MongoDB-CRUD-master
├─ project
│ ├─ controllers
│ │ ├─ employeeController.js
│ │ └─ sensorController.js
│ ├─ models
│ │ ├─ db.js
│ │ ├─ employee.model.js
│ │ └─ sensor.model.js
│ ├─ package-lock.json
│ ├─ package.json
│ ├─ server.js
│ └─ views
│ ├─ employee
│ │ ├─ addOrEdit.hbs
│ │ └─ list.hbs
│ ├─ layouts
│ │ └─ mainLayout.hbs
│ └─ sensor
│ ├─ addOrEdit.hbs
│ └─ list.hbs
└─ README.md
我添加了controllers/sensorController.js、models/sensor.model.js、views/sensor 并修改了db.js
现有db.js文件的代码如下:
const mongoose = require('mongoose');
mongoose.connect('mongodb://127.0.0.1:27017/EmployeeDB', { useNewUrlParser: true, useUnifiedTopology: true}, (err) => {
if (!err) { console.log('MongoDB Connection Succeeded.') }
else { console.log('Error in DB connection : ' + err) }
});
require('./employee.model');
到
更改如下:
const mongoose = require('mongoose');
const conn = mongoose.createConnection('mongodb://127.0.0.1:27017/EmployeeDB' , { useNewUrlParser: true, useUnifiedTopology: true}, (err) => {
if (!err) { console.log('MongoDB Connection Succeeded.') }
else { console.log('Error in DB connection : ' + err) }
} );
const EmployeeModel = conn.model('EmployeeModel', require('./employee.model'));
require('./employee.model');
const conn2 = mongoose.createConnection('mongodb://127.0.0.1:27017/SensorDB' , { useNewUrlParser: true, useUnifiedTopology: true}, (err) => {
if (!err) { console.log('MongoDB Connection Succeeded.') }
else { console.log('Error in DB connection : ' + err) }
} );
const SensorModel =conn2.model('SensorModel', require('./sensor.model'));
module.exports = {conn, EmployeeModel, conn2,SensorModel};
发生错误如下。
$ node server.js
Express server started at port : 3000
MongoDB Connection Succeeded.
MongoDB Connection Succeeded.
Error in retrieving employee list :MongooseError: Operation `employees.find()` buffering timed out after 10000ms
Error during record insertion : MongooseError: Operation `employees.insertOne()` buffering timed out after 10000ms
Error in retrieving sensor list :MongooseError: Operation `sensors.find()` buffering timed out after 10000ms
Error during record insertion : MongooseError: Operation `sensors.insertOne()` buffering timed out after 10000ms
Error during record insertion : MongooseError: Operation `sensors.insertOne()` buffering timed out after 10000ms
Error during record insertion : MongooseError: Operation `sensors.insertOne()` buffering timed out after 10000ms
Error in retrieving sensor list :MongooseError: Operation `sensors.find()` buffering timed out after 10000ms
如果您能回答我的问题,我将不胜感激
据我了解,您对集合和数据库存在概念混乱。
数据库由一个或多个集合组成。集合包括 一份或多份文件。
也许这个可以帮助你理解MongoDB的核心概念。
问题是您想要添加一个新集合,但您的代码添加了一个新数据库。
如果您想添加新的集合,只需添加模型即可。通过这个模型,Mongoose 将在创建新文档时立即创建一个集合。但是,如果您愿意,您可以使用
createCollection
方法手动触发它。