Frage Node.js Express-Anwendung starten


Ich habe eine Anwendung mit erstellt

$ express -c stylus express_example

Ich kann meinen Server mit starten

$ npm start

aber

$ node app.js

&

$ nodemon app.js

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

$ node app.js
$

Dies ist meine 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;

10
2018-06-28 22:35


Ursprung


Antworten:


Herausgefunden. Da mein Server im Gegensatz zur Datei app.js in der bin / www-Datei gestartet wird, bin ich vom Terminal aus in mein bin-Verzeichnis gegangen und habe ihn dann angerufen

$ node wwww

oder

$ nodemon www

16
2017-12-21 22:36



Ihre npm start ruft wahrscheinlich deinen an bin/www Datei. Welches enthält die listen Aufruf zum Starten Ihrer App

Viele Leute richten ihre App so ein. z.B. app.js um ihre App zu definieren und zu konfigurieren, und so ähnlich 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.


3
2018-06-28 23:05



Sie haben in Ihrer Paket.json-Datei eine Eigenschaft, mit der Sie den Einstiegspunkt Ihrer Anwendung angeben können. Beispielsweise:

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

2
2018-02-27 04:27