2017-01-12 5 views
-1

Neu Express-App, ich versuche, mongodb mit Express und node.js einzurichten. Ich habe einige Probleme, wenn ich in diesem Bereich etwas Hilfe bekommen kann. Ich habe versucht, Verzeichnisse refrences hinzuzufügen, damit Sie Idee haben können.Wie mongodb mit Express einrichten?

1- var config kommt undefined nicht sicher Pfad ist richtig.

2- get SyntaxError: Unerwartetes reserviertes Wort für require('./config/express')(app);.

Grundsätzlich versucht App mit lokalen Mongodb laufen zu lassen.

server> app.js

var express = require('express'); 
var mongoose = require('mongoose'); 
mongoose.Promise = require('bluebird'); 
var config = require('./config/environment'); 
var http = require('http'); 
var https = require('https'); 
var fs = require('fs'); 
var bodyParser = require('body-parser'); 
// Connect to MongoDB 
mongoose.connect(config.mongo.uri, config.mongo.options); 
mongoose.connection.on('error', function(err) { 
    console.error('MongoDB connection error: ' + err); 
    process.exit(-1); 
}); 


// Setup server 
var app = express(); 
var server = http.createServer(app); 


require('./config/express')(app); 
require('./routes')(app); 

// Start server 
function startServer() { 
    server.listen(config.port, config.ip, function() { 
     console.log('Express server listening on %d, in %s mode', config.port, app.get('env')); 
    }); 
} 

setImmediate(startServer); 

// Expose app 
exports = module.exports = app; 

server> config> Express.js

var express = require('express'); 
var morgan = require('morgan'); 
var bodyParser = require('body-parser'); 
var path = require('path'); 
var config = require('./config/environment'); 
var session = require('express-session'); 
var connectMongo = require('connect-mongo'); 
var mongoose = require('mongoose'); 
var mongoStore = connectMongo(session); 

export default function(app) { 
    var env = app.get('env'); 

    app.set('views', config.root + '/server/views'); 
    app.engine('html', require('ejs').renderFile); 
    app.set('view engine', 'html'); 
    /*app.use(compression());*/ 
    app.use(bodyParser.urlencoded({ 
     extended: false 
    })); 

    app.set('appPath', path.join(config.root, 'client')); 

    if ('development' === env || 'test' === env) { 
     app.use(express.static(path.join(config.root, '.tmp'))); 
     app.use(express.static(app.get('appPath'))); 
     app.use(morgan('dev')); 

server> config> Umwelt> development.js

module.exports = { 

    // MongoDB connection options 
    mongo: { 
    uri: 'mongodb://localhost/test-modeler-dev' 
    }, 

    // Seed database on startup 
    seedDB: false 

}; 
+0

Es ist schwierig, das Problem zu identifizieren, ohne zu wissen, was die Verzeichnisstruktur für './Config' ist. Es sieht nicht so aus, dass sich im './Config/environment'-Verzeichnis eine' index.js'-Datei befindet, daher ist sie undefiniert. Müssen Sie stattdessen mit einer bestimmten Datei wie 'require ('./config/environment/development.js')' 'versuchen? –

+0

Config ist unter Server und Server ist auf Root-Ebene, wie ich in development.js erwähnt habe. – hussain

+0

Welche anderen Dateien gibt es im './Config/environment' Verzeichnis? Wenn es nur 'development.js' gibt, müssen Sie' require ('./ config/environment/development.js') stattdessen verwenden, da der Modullader diesen Namen nicht standardmäßig auflösen wird. –

Antwort

-1

Wie darauf hingewiesen wurde In den Kommentaren der Frage ist Ihr Problem, dass Sie neuere JavaScript-Funktionen mit einer älteren Version verwenden von Knoten. Um rund um die aktuellen Fehler, sollten Sie diese Zeile in Server ändern> config> Express.js:

// ... 
export default function(app) { 
// ... 

zu

// ... 
module.exports = function(app) { 
// ... 

Dies sollte dieses spezielle Problem lösen. Aber wenn der Code, den Sie verwenden ist mit anderen Funktionen von ECMAScript 2015, die nicht von Ihrer Version von Knoten unterstützt werden, dann haben Sie zwei Möglichkeiten:

  • Updates auf die latest version von Node.js hier.
  • Refactor alle Ihre Code entfernen Sie alle ECMAScript 2015 Funktionen, um sicherzustellen, dass es mit Ihrer Version von Node.js funktioniert.

Hoffe das hilft.

Verwandte Themen