2016-06-03 5 views
1

Ich schreibe gerade eine Webanwendung mit dem MEAN-Stack und teste, ob mein Nodejs-Server funktioniert. Hier ist mein server.js:Unerwarteter Token. Beim Ausführen von server.js

// server.js 
    'use strict'; 

    // modules ================================================= 
    const path = require('path'); 
    const express = require('express'); 
    const app = express(); 
    const bodyParser = require('body-parser'); 
    const methodOverride = require('method-override'); 

    // configuration =========================================== 

    // config files 
    const db = require('./config/db'); 

    // set our port 
    var port = process.env.PORT || 8080; 

    // connect to mongoDB 
    // (uncomment after entering in credentials in config file) 
    // mongoose.connect(db.url); 

    // get all data/stuff of the body (POST) parameters 
    // parse application/json 
    app.use(bodyParser.json()); 

    // parse application/vnd.api+json as json 
    app.use(bodyParser.json({ type: 'application/vnd.api+json' })); 

    // parse application/x-www-form-urlencoded 
    app.use(bodyParser.urlencoded({ extended: true })); 

    // override with the X-HTTP-Method-Override header in the request simulate DELETE/PUT 
    app.use(methodOverride('X-HTTP-Method-Override')); 

    // set the static files location /public/img will be /img for users 
    app.use(express.static(__dirname + '/public')); 

    // routes ================================================== 
    require('./app/routes')(app); // configure our routes 

    // start app =============================================== 
    // startup our app at http://localhost:8080 
    app.listen(port); 

    // shoutout to the user 
    console.log('App running on port ' + port); 

    // expose app 
    exports = module.exports = app; 

Im Moment habe ich es alle Routen zu meiner Datei index.html Umleitung zu testen, um sicherzustellen, dass meine Ansichten arbeiten. Hier ist mein routes.js:

// models/routes.js 

    // grab the user model 
    var User = require('./models/user.js'); 

    module.exports = { 
     // TODO: Add all routes needed by application 

     // frontend routes ========================================================= 
     // route to handle all angular requests 
     app.get('*', function(req, res) { 
      res.sendfile('./public/index.html'); // load our public/index.html file 
     }); 
    }; 

aber wenn ich versuche, node server.js zu laufen, es gibt mir diese Fehlermeldung:

/home/hess/Projects/FitTrak/app/routes.js 
     app.get('*', function(req, res) { 
     ^

    SyntaxError: Unexpected token . 

Hat jemand eine Ahnung, was das verursacht? Ich habe überprüft und alle meine Klammern und Klammern sind alle geschlossen und korrekt geschrieben.

+3

Sie erstellen ein fehlerhaftes Objektliteral. module.exports = {key: 'value'} ist gut. –

+3

Ich gehe davon aus, dass Sie etwas tun möchten wie: module.exports = function (app) {/ * Ihr Code * /} –

+1

Wir lösen nicht im Titel hier gelöst. Wenn Sie Ihre Frage beantwortet haben, posten Sie die Antwort und markieren Sie sie als akzeptiert oder löschen Sie die Frage. – j08691

Antwort

1

Wie Jose Hermosilla Rodrigo sagte in seinem Kommentar, deklarieren Sie das Objekt Literal module.exports falsch. Es sollte wie dieser Stelle aussehen:

module.exports = function(app) { 
    app.get('*', function(req, res) { 
     res.sendfile('./public/index.html'); // load our public/index.html file 
    }); 
}; 
1

nur diesen Code versuchen ...

// Modelle/routes.js

var express=require('express'); 
var app=express(); 

// TODO: Add all routes needed by application 

     // frontend routes ========================================================= 
     // route to handle all angular requests 
app.get('*', function(req, res) { 
      res.sendfile('./public/index.html'); 
     }); 

module.exports = route; 

server.js

'use strict'; 

const path = require('path'); 
const express = require('express'); 
const app = express(); 
const bodyParser = require('body-parser'); 
var route=require('./models/route.js'); 
const methodOverride = require('method-override'); 

// configuration =========================================== 

// config files 
const db = require('./config/db'); 

// set our port 
var port = process.env.PORT || 8080; 

// connect to mongoDB 
// (uncomment after entering in credentials in config file) 
// mongoose.connect(db.url); 

// get all data/stuff of the body (POST) parameters 
// parse application/json 
app.use(bodyParser.json()); 

// parse application/vnd.api+json as json 
app.use(bodyParser.json({ type: 'application/vnd.api+json' })); 

// parse application/x-www-form-urlencoded 
app.use(bodyParser.urlencoded({ extended: true })); 

// override with the X-HTTP-Method-Override header in the request simulate DELETE/PUT 
app.use(methodOverride('X-HTTP-Method-Override')); 

// set the static files location /public/img will be /img for users 
app.use(express.static(__dirname + '/public')); 

// routes ================================================== 
require('./app/routes')(app); // configure our routes 

// start app =============================================== 
// startup our app at http://localhost:8080 
app.listen(port); 

// shoutout to the user 
console.log('App running on port ' + port); 


app.use('/',route); 
0

Wenn Sie verwenden MEAN Stack Ich würde Ihnen empfehlen, Express eigene Router Middleware zu verwenden, um alle Ihre Routen zu behandeln. Einfach einbeziehen.

var router = express.Router(); 
    //use router to handle all your request 
    router.get(/xxx,function(req, res){ 
    res.send(/xxxx); 
    }) 

    // You may have n number of router for all your request 
    //And at last all you have to do is export router 

    module.exports = router;