forked from langpavel/baucis-example
/
app.js
51 lines (34 loc) · 1.24 KB
/
app.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
// __Dependencies__
var express = require('express');
var mongoose = require('mongoose');
var baucis = require('baucis');
var Api = require('baucis/Api');
// configure gform schema generator
var Gform = require('baucis-gform');
var TabGroupCreator = require('mongoose-schema/groupcreator/TabGroupCreator');
var creator = new TabGroupCreator();
var gform = new Gform({basePath:"/api", generatorProps:{groupCreator: creator}});
// initialize db
require("./data");
// __Main Program__
// Connect to the Mongo instance
mongoose.connect('mongodb://127.0.0.1/test');
// add cors support
var allowCrossDomain = function (req, res, next) {
res.header('Access-Control-Allow-Origin', "*");
res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE');
// dojo sends X-Requested-With and If-None-Match (for insert)
res.header('Access-Control-Allow-Headers', 'Content-Type, X-Requested-With, If-None-Match');
next();
}
// Create the API routes
baucis.rest('User');
baucis.rest('BlogPost');
// Create the app and listen for API requests
var app = express();
app.use(allowCrossDomain);
app.use('/api', baucis());
gform.start(app);
app.use("/client", express.static("client"));
app.listen(3333);
console.log('Server listening on port 3333.');