mongoose-restapi-ui
Version:
Rest api library for your mongoose apps, with react ui: mongoose-restapi-ui-component react library
62 lines • 2.2 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var express = require('express');
var bodyParser = require('body-parser');
var mongoose = require("mongoose");
var app = express();
var router_1 = require("../src/router");
app.use(bodyParser.json());
mongoose.connect('mongodb://localhost:27017/database');
var router = router_1.ApiRouter();
var customer = mongoose.model('Customer', new mongoose.Schema({
complex: {
name: { type: String },
number: { type: Number, label: true }
},
name: { type: String, required: true },
comment: { type: String },
arraycomment: [{ type: String }],
arrayint: [{ type: Number }],
arrayDate: [{ type: Date }],
dateField: { type: Date }
}));
var provider = mongoose.model('Provider', new mongoose.Schema({
name: {
type: [{ hola: { type: String, required: true, label: true }, adios: { type: String, required: true } }],
required: true
},
complex: {
label: { type: String, label: true }
},
complexArrayRef: [{
name: String,
customer: { ref: 'Customer', type: mongoose.Schema.Types.ObjectId, label: true }
}],
customer: [{
ref: 'Customer', type: mongoose.Schema.Types.ObjectId
}],
comment: { type: String }
}));
var User = mongoose.model('User', new mongoose.Schema({
name: String,
super_admin: Boolean,
roles: [mongoose.Schema.Types.ObjectId]
}));
var userId = new User({ super_admin: true });
app.use(function (req, res, next) {
req.user = userId;
next();
});
router.setConnection(mongoose);
router.setModel('/customer', customer, { name: 'name', hasAddPermission: function (req, cb) { return cb(null, true); } });
router.setModel('/provider', provider, { hasAddPermission: function (req, cb) { return cb(null, true); } });
router.setRoleEndpoints();
app.use('/', router);
app.get('/tree', router.publishUiTree());
app.listen(3030, function () {
console.log('Express server listening on port 3000');
});
module.exports = {
customer: customer, provider: provider
};
//# sourceMappingURL=index.js.map