generator-restgoose
Version:
Modern, Lightweight, and Powerfull Rest API Code generator. Out-Of-Box NodeJS REST API Server generator built on top of Mongoose, Express, Cors, Passport, JWT and many more.
49 lines (40 loc) • 1.04 kB
JavaScript
;
const mongoose = require('mongoose'),
Schema = mongoose.Schema;
let fields = {
<% schemaFields.forEach(function (field, index) {
let fProp = field.split(':')[0].trim(),
fVal = field.split(':')[1].split('>')[0].trim(),
fRef = field.split(':')[1].split('>')[1] || null;
fRef = fRef ? (fRef.trim()[0].toUpperCase() + fRef.slice(1)).trim() : null;
let fActualVal = `{type:${fVal}}`;
switch (fVal) {
case 'String':
case 'Number':
case 'Buffer':
case 'Boolean':
case 'ObjectId':
fActualVal = `{
type: ${fVal}${fRef ? ',\n\t\tref: \'' + fRef + '\'' : ''}
}`;
break;
case 'Date':
fActualVal = `{
type: ${fVal},
default: Date.now
}`;
break;
case 'Mixed':
fActualVal = '{ }';
break;
}
let modelLine = fProp + ': ' + fActualVal;
if (schemaFields.length - 1 !== index) {
modelLine += ',';
}
%>
<%- modelLine %>
<% });%>
};
let ModelSchema = new Schema(fields, { timestamps: true });
module.exports = mongoose.model('<%= capSchemaName %>', ModelSchema);