有没有办法为mongodb操作函数创建一个单独的文件并在索引文件中使用这些函数?

时间:2018-08-08 13:28:44

标签: node.js mongodb

我在Express服务器的index.js文件中有主要代码,我想创建另一个文件来处理数据库CRUD操作。我该怎么办?

index.js 从mongo.js导入功能

getUsers()

mongo.js

using MongoClient.connect to connect to db
function getUser(){
// get users from mongo db
}

2 个答案:

答案 0 :(得分:0)

您可以实现此创建助手功能:

我将在我的项目的示例中进行解释:

首先,您需要创建辅助功能文件

helper.js

module.exports = {
 userAuthenticated: function(req, res, next){
 if(req.isAuthenticated()){
  return next();
 }
 res.redirect('/login')
 }
};

如您所见,我导出了此功能。

然后,我们可以在其他.js文件中像这样从中获取代码:

other.js

const {userAuthenticated} = require('../../helpers/authentication.js');

router.all('/*', userAuthenticated, (req, res, next)=>{
 req.app.locals.layout = 'admin';
 next();
});

答案 1 :(得分:0)

您使用mongoose吗?我严格建议使用此lib代替本机连接驱动程序。

您可以通过在单独的文件中创建猫鼬连接,然后将连接实例导入到具有db模式的文件中来实现您的目标。例如:

const mongoose = require("./mongo");
const Schema = mongoose.Schema;

const User = new Schema({
  name: { type: String },
  password: { type: String })

const UserModel = mongoose.model("User",User);
module.exports = {
  model: UserModel,
  getById: id => UserModel.find({_id:id})
}

然后将这些文件导入您要使用的位置:

const UserModel = require("./User");
...
UserModel.getById("someid").then(handler);