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 如何从nodejs中的get选项获取集合名称_Node.js_Mongodb_Mongoose_Angular8 - Fatal编程技术网

Node.js 如何从nodejs中的get选项获取集合名称

Node.js 如何从nodejs中的get选项获取集合名称,node.js,mongodb,mongoose,angular8,Node.js,Mongodb,Mongoose,Angular8,我正在尝试从mongodb获取表数据,这取决于传递集合名称。在我的angular项目中,我有一个服务。我正在通过get方法传递集合名称,但我不知道如何在gettable data方法中获取该集合名称 product.component.js: ngOnInit(){ this.getProductsData('table'); } getProductsData(collection){ this.userService.getTableDat

我正在尝试从mongodb获取表数据,这取决于传递集合名称。在我的angular项目中,我有一个服务。我正在通过get方法传递集合名称,但我不知道如何在gettable data方法中获取该集合名称

product.component.js:

    ngOnInit(){ 
     this.getProductsData('table'); 
    }

    getProductsData(collection){ 
     this.userService.getTableData(collection).subscribe(
      res => {
        this.tableData =  res; 
      },
      err => {
        console.log(err);

      }
    );

  }
user.service.ts:

getTableData(collection){ 
return this.http.get('http://localhost:3000/api/getTableData',collection);
}
table.controller.js//Nodejs

    const mongoose = require('mongoose');
const passport = require('passport');
const _ = require('lodash');

var userSchemaTable = new mongoose.Schema({
    product_name: {
        type: String
    },
    price: {
        type: String
    },
    catogery: {
        type: String
    }
}, { collection: 'table' });


mongoose.model('table', userSchemaTable);

const Table = mongoose.model('table');

module.exports.getTableData = (req, res, next) => {

    console.log(collection)

    How to get collection name here??????????????????????

  collection.find({}, function(err, docs) {
        if (err) {
            console.log('ss' + err);
            return
        }
        return res.json(docs)
    }) 
}

将您的
getTableData
方法更改为这样,而是传递一个
对象

getTableData(collection){ 
return this.http.get(`http://localhost:3000/api/getTableData?collection=${collection}`);
}
然后像这样获取集合名称

module.exports.getTableData = (req, res, next) => {

 let collection=req.query.collection;
    console.log(collection)

  collection.find({}, function(err, docs) {
        if (err) {
            console.log('ss' + err);
            return
        }
        return res.json(docs)
    }) 
}

这是一个获取路径吗???@KavithaK请现在再试我还有一个问题:如何动态创建集合?请查看此答案@KavithaK-该链接未使用:我无法传递多个集合。。