Node.js 如何从调用的API获取集合名称
我正在使用mongoDB开发一个NodeJS应用程序。当我调用该集合的API时,我需要帮助来获取集合名称。我想在中间件函数中使用它 我从这里得到了调用API的方法Node.js 如何从调用的API获取集合名称,node.js,mongodb,express,mongoose,mongodb-query,Node.js,Mongodb,Express,Mongoose,Mongodb Query,我正在使用mongoDB开发一个NodeJS应用程序。当我调用该集合的API时,我需要帮助来获取集合名称。我想在中间件函数中使用它 我从这里得到了调用API的方法 const getmethod=req.method您需要首先创建中间件,然后获取集合列表并将其与请求绑定,如下所示 const mongoose = require('mongoose'); const connection = mongoose.connect('mongodb://localhost:27017'); cons
const getmethod=req.method代码>您需要首先创建中间件
,然后获取集合列表并将其与请求绑定,如下所示
const mongoose = require('mongoose');
const connection = mongoose.connect('mongodb://localhost:27017');
const getmethod = req.method;
app.use(function(req, res, next) {
connection.on('open', function () {
connection.db.listCollections().toArray(function (err, names) {
if (err) {
console.log(err);
//Error in get collection
req.collectionName = '';
mongoose.connection.close();
next();
} else {
console.log(names);
if(names.includes(getmethod)){
req.collectionName = getmethod;
}else{
//there is no collection exist for this method
req.collectionName = '';
}
mongoose.connection.close();
next();
}
});
});
});
它将从DB返回集合列表。但每次调用api时,我只需要一个集合名称。例如,我调用api以获取客户。在这种情况下,我需要该客户集合名称的名称。@sohilpatel您可以检查您的方法是否存在于数据库中,如果是,则可以将集合名称绑定为空,否则为空,我编辑了我的答案,也许这对您有帮助