2016-09-04 2 views
0

Ich versuche, eine MEAN App auf Heroku mit Mungo zu implementieren. Die Website wird bereitgestellt, funktioniert aber nicht ordnungsgemäß. MLab verwendet weder meine Modelle noch API-Routen. Ich denke, es kann die Projektstruktur sein, aber ich bin mir überhaupt nicht sicher.Kann nicht verwenden mab auf heroku mit MEAN App

package.json ist richtig und es hat: "Start": "Knoten ./bin/www"

www-Datei:

#!/usr/bin/env node 
var app = require('../server'); 
var debug = require('debug')('AcademiaWeb:server'); 
var http = require('http'); 

var port = normalizePort(process.env.PORT || '3000'); 
app.set('port', port); 

var server = http.createServer(app); 

server.listen(port); 
server.on('error', onError); 
server.on('listening', onListening); 

function normalizePort(val) { 
    var port = parseInt(val, 10); 

    if (isNaN(port)) { 
    // named pipe 
    return val; 
    } 

    if (port >= 0) { 
    // port number 
    return port; 
    } 

    return false; 
} 

function onError(error) { 
    if (error.syscall !== 'listen') { 
    throw error; 
    } 

    var bind = typeof port === 'string' 
    ? 'Pipe ' + port 
    : 'Port ' + port; 

    switch (error.code) { 
    case 'EACCES': 
     console.error(bind + ' requires elevated privileges'); 
     process.exit(1); 
     break; 
    case 'EADDRINUSE': 
     console.error(bind + ' is already in use'); 
     process.exit(1); 
     break; 
    default: 
     throw error; 
    } 
} 

function onListening() { 
    var addr = server.address(); 
    var bind = typeof addr === 'string' 
    ? 'pipe ' + addr 
    : 'port ' + addr.port; 
    debug('Listening on ' + bind); 
} 

server.js (Es hieß app.js und es sowieso nicht arbeiten, damit ich es folgende Heroku Tutorial geändert):

var express = require('express'); 
var path = require('path'); 
var favicon = require('serve-favicon'); 
var logger = require('morgan'); 
var cookieParser = require('cookie-parser'); 
var bodyParser = require('body-parser'); 

require('./config/connectMongoose.js'); 

require('./models/asignatura_model'); 
require('./models/horario_model');*/ 
require('./models/grado_model'); 
require('./models/universidad_model'); 
require('./models/campus_model'); 

var asignaturas = require('./routes/api/v1/asignaturas'); 
var dias = require('./routes/api/v1/dias');*/ 
var grados = require('./routes/api/v1/grados'); 
var universidades = require('./routes/api/v1/universidades'); 
var campus = require('./routes/api/v1/campus'); 

var app = express(); 

app.set('views', path.join(__dirname, 'views')); 
app.set('view engine', 'ejs'); 

app.use(logger('dev')); 
app.use(bodyParser.json()); 
app.use(bodyParser.urlencoded({ extended: false })); 
app.use(cookieParser()); 
app.use(express.static(path.join(__dirname, 'public'))); 

app.use('/api/v1/asignaturas', asignaturas); 
app.use('/api/v1/grados', grados); 
app.use('/api/v1/universidades', universidades); 
app.use('/api/v1/campus', campus); 

app.use(function(req, res, next) { 
    var err = new Error('Not Found'); 
    err.status = 404; 
    next(err); 
}); 

if (app.get('env') === 'development') { 
    app.use(function(err, req, res, next) { 
     res.status(err.status || 500); 
     res.render('error', { 
      message: err.message, 
      error: err 
     }); 
    }); 
} 

app.use(function(err, req, res, next) { 
    res.status(err.status || 500); 
    res.render('error', { 
     message: err.message, 
     error: {} 
    }); 
}); 


module.exports = app; 

./models/campus_model ist, wo Mungo-Modelle sowie ./routes/api/v1/asignaturas befinden, wo die API Routen sind.

connectMongoose:

'use strict'; 

var mongoose = require('mongoose'); 
mongoose.connect(process.env.MONGOLAB_URI||'mongodb://localhost/hypathia'); 

var db = mongoose.connection; 

db.on('error', console.error.bind(console, 'Mongodb connection error:')); 
db.once('open', function() { 
    console.info('Connected to mongodb on port 27017'); 
}); 


module.exports = mongoose; 

Sorry für die Menge an Code, und danke

+0

Ist mLab URI Konfigurationsvariable für deine Heroku App 'MONGOLAB_URI' oder' MONGODB_URI'? https://devcenter.heroku.com/articles/mongolab#getting-your-connection-uri – pneumee

+0

@pneumee Ich sah es ein paar Sekunden nach der Veröffentlichung dieses. Ich habe es geändert und es hat sowieso nicht funktioniert. Übrigens, ich habe es behoben, weiß nicht genau wie. Danke! – Aldeguer

Antwort

0

Nur falls jemand diese Frage prüft, ich dies von Grund auf durch Zuführen der Datenbank gelöst

Verwandte Themen