Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js MongoDB未使用NodeJS驱动程序应用程序返回数据_Node.js_Mongodb_Express - Fatal编程技术网

Node.js 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

我正在使用mongoose连接mongoDB。这是一个nodeJS应用程序。现在我关心的是获取数据并在我的应用程序中显示它。但是,它不会显示任何错误,也不会显示任何数据。 这是我的服务器文件

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集合中确实有数据