Node.js MongoDB未使用NodeJS驱动程序应用程序返回数据
我正在使用mongoose连接mongoDB。这是一个nodeJS应用程序。现在我关心的是获取数据并在我的应用程序中显示它。但是,它不会显示任何错误,也不会显示任何数据。 这是我的服务器文件Node.js MongoDB未使用NodeJS驱动程序应用程序返回数据,node.js,mongodb,express,Node.js,Mongodb,Express,我正在使用mongoose连接mongoDB。这是一个nodeJS应用程序。现在我关心的是获取数据并在我的应用程序中显示它。但是,它不会显示任何错误,也不会显示任何数据。 这是我的服务器文件 const express = require('express'), path = require('path'), bodyParser = require('body-parser'), cors = require('cors'), mongoose = requir
const express = require('express'),
path = require('path'),
bodyParser = require('body-parser'),
cors = require('cors'),
mongoose = require('mongoose'),
config = require('./DB');
const employeeRoute = require('./routes/employee.route');
mongoose.Promise = global.Promise;
mongoose.connect(config.DB, { useNewUrlParser: true })
.then(() => { console.log('Database is connected') },
err => { console.log('Can not connect to the database' + err) }
);
const app = express();
app.use(bodyParser.json());
app.use(cors());
app.use('/Employees', employeeRoute);
let port = process.env.PORT || 4000;
const server = app.listen(port, function () {
console.log('Listening on port ' + port);
})
这是我的路线
文件
const express = require('express');
const employeeRoute = express.Router();
let Employees = require('../models/Employee');
employeeRoute.route('/').get(function (req, res) {
let employees = [];
Employees.find({}, function (err, results) {
if (err) {
console.log(err);
}
else {
employees = results;
console.log(employees)
res.json(employees);
}
})
})
module.exports = employeeRoute
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
let Employee = new Schema({
first_name: { type: String },
last_name: { type: String },
title: { type: String },
email: { type: String },
gender: { type: String },
location: { type: String },
phone: { type: Number }
},
{ collation: 'Employees' });
module.exports = mongoose.model('Employees', Employee)
最后是我的employee.js
文件
const express = require('express');
const employeeRoute = express.Router();
let Employees = require('../models/Employee');
employeeRoute.route('/').get(function (req, res) {
let employees = [];
Employees.find({}, function (err, results) {
if (err) {
console.log(err);
}
else {
employees = results;
console.log(employees)
res.json(employees);
}
})
})
module.exports = employeeRoute
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
let Employee = new Schema({
first_name: { type: String },
last_name: { type: String },
title: { type: String },
email: { type: String },
gender: { type: String },
location: { type: String },
phone: { type: Number }
},
{ collation: 'Employees' });
module.exports = mongoose.model('Employees', Employee)
应用程序运行正常,没有任何错误。在将其发布到论坛之前,我已经仔细检查了db
和收藏
的名称。
任何建议你做得不对,伙计。下面是一个使用mongoose插入数据的示例方法
employeeRoute.route('/').get(function (req, res) {
Employees.create({your_data}) // ex: {email:req.body.email}
.then((employee)=>{
console.log(employee)
res.json(employee);
}).catch((err)=> {
console.log(err);
res.status(400).send({message: "your message"})
})
})
module.exports = employeeRoute
看起来您可能只需要稍微重构一下路线,以确保获得所需的结果。例如,请看我下面的示例:
const express = require('express');
const employeeRoute = express.Router();
let Employees = require('../models/Employee');
employeeRoute.route('/').get(function (req, res) {
// Extract data from the request object here in order to search for employees. For example:
const name = req.body.name;
const surname = req.body.surname;
let employees = [];
// Now perform a find on your specific data:
Employees.find({ first_name: name, last_name: surname }, function(err, results) {
if (err) console.log(err);
else employees = results;
console.log(JSON.stringify(employees));
res.json(employees);
});
// Or you can perform a find on all employees
Employees.find({}, function(err, results) {
if (err) console.log(err);
else employees = results;
console.log(JSON.stringify(employees));
res.json(employees);
});
})
module.exports = employeeRoute
正如我在评论中提到的,您的连接可能需要更改以使用正确的术语:useNewUrlParser
编辑
我还注意到,在您的员工模式中,您将排序规则
而不是集合
-请参见以下内容:
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
let Employee = new Schema({
first_name: { type: String },
last_name: { type: String },
title: { type: String },
email: { type: String },
gender: { type: String },
location: { type: String },
phone: { type: Number }
}, { collection: 'employees' });
module.exports = mongoose.model('Employees', Employee)
试试看,有什么区别吗?使用新urlpars是正确的选项吗?它不应该是
useNewUrlParser
?-现在只需阅读其余部分。您的控制台是否显示“数据库已连接”如果是,请确保您已连接到正确的数据库。你能去检查一下你的员工文件中是否有记录吗。有时问题很小,但我们认为它很大。是的,它显示数据库已连接,而且我还确保我的收藏中有数据。我想读取数据库中的数据,而不是插入好友,谢谢。查看您的代码nowlet emp=新员工(res);控制台日志(res);这句话让我很困惑!!我已经更新了有问题的代码,请现在查看,首先确保你的应用程序可以连接到mongo。然后(()=>{console.log('Database is connected'))).catch(err=>{console.log('cannotconnecttothedatabase'+err'))并确保您在employees集合中确实有数据