【发布时间】:2023-03-14 22:05:01
【问题描述】:
我正在使用 Mongoose 在 nodejs 中工作,此时我在不同的集合中使用 _id 为用户编写字符串,我尝试对此进行重构并自动生成 _id。
我希望在其他文件中只有 js 函数 generateID(return _id;);并在所有模型中实现此功能,而无需在所有模型中一遍又一遍地编写。
这是bus.js
/***********************************Bus Model**********************************/
var mongoose = require('mongoose'),
merge = require('merge'),
global = require('./schema/global');
/***********************************Schema******************************************/
var Schema = mongoose.Schema;
var busSchema = new Schema({});
/***********************************Methods*****************************************/
var bus = mongoose.model('Bus', busSchema);
/**
* extend functions from global
* we do this to prevent duplicate code
*/
merge(bus.schema.methods, global.schema.methods);
module.exports = bus;
这是项目中模型文件夹的架构文件夹中的 global.js
var mongoose = require('mongoose'),
Schema = mongoose.Schema;
var globalSchema = new Schema({});
function objectIdAsString() {
return mongoose.Types.ObjectId().toString();
}
globalSchema.methods.objectIdAsString = objectIdAsString;;
module.exports = mongoose.model('global', globalSchema);
并且在 route.js 中有这个实现:
var bus = new Bus();
bus._id = bus.objectIdAsString();
【问题讨论】:
标签: javascript node.js mongodb mongoose