2014-06-28 20 views
7

habe ich eine Anwendung mitStarten Node.js Express Anwendung

$ express -c stylus express_example 

Ich kann meinen Server mit

$ npm start 

aber

$ node app.js 

&

$ nodemon app.js 
starten

scheint nicht zu funktionieren. Ich bekomme keine Fehlermeldungen, Terminal geht nur zur nächsten Zeile. z.B.

$ node app.js 
$ 

Das ist mein bin/www Datei

#!/usr/bin/env node 
var debug = require('debug')('my-application'); 
var app = require('../app'); 

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

var server = app.listen(app.get('port'), function() { 
    debug('Express server listening on port ' + server.address().port); 
}); 

und meine app.js Datei

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

var routes = require('./routes/index'); 
var users = require('./routes/users'); 

var app = express(); 

// view engine setup 
app.set('views', path.join(__dirname, 'views')); 
app.set('view engine', 'jade'); 

app.use(favicon()); 
app.use(logger('dev')); 
app.use(bodyParser.json()); 
app.use(bodyParser.urlencoded()); 
app.use(cookieParser()); 
app.use(require('stylus').middleware(path.join(__dirname, 'public'))); 
app.use(express.static(path.join(__dirname, 'public'))); 

app.use('/', routes); 
app.use('/users', users); 

/// catch 404 and forwarding to error handler 
app.use(function(req, res, next) { 
    var err = new Error('Not Found'); 
    err.status = 404; 
    next(err); 
}); 

/// error handlers 

// development error handler 
// will print stacktrace 
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 
     }); 
    }); 
} 

// production error handler 
// no stacktraces leaked to user 
app.use(function(err, req, res, next) { 
    res.status(err.status || 500); 
    res.render('error', { 
     message: err.message, 
     error: {} 
    }); 
}); 

module.exports = app; 
+0

erhalten Sie eine Fehlermeldung? – soulcheck

+0

poste deine app.js – soulcheck

Antwort

14

Ich habe es herausgefunden. Da mein Server in der bin/www-Datei gestartet wird, in Bezug auf die app.js Datei im Gegensatz vom Terminal ich in meinem Verzeichnis bin gegangen und rief dann

$ node wwww 

oder

$ nodemon www 
3

Ihre npm start wahrscheinlich Ihre bin/www-Datei aufruft. Das enthält den Aufruf listen zum Starten Ihrer App.

Viele Leute richten ihre App auf diese Weise. z.B. app.js, um ihre App zu definieren und zu konfigurieren, und so etwas wie bin/www, um den Server zum Laufen zu bringen. Auf diese Weise können sie die app.js in andere Teile, sagen Tests, ohne den Server tatsächlich zu starten, wenn Sie require es.

1

Sie haben in Ihre Paket.json-Datei eine Eigenschaft, wo Sie den Einstiegspunkt Ihrer Anwendung hinweisen können. Zum Beispiel:

"scripts": { 
    "start": "node ./bin/www" 
}