javascript - nodejs seperate code include middleware use() -


i'm new nodejs, below app.js installed express --sessions --css less --hogan app command.
tried separate commented line in app.js move new file call route_handler.js.

i'm not sure doing correct add require('./route_handler.js'); in app.js , should have export in route_handler.js express() ?
how solve it?

does require means execute code in file?

app.js

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');  // 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', 'hjs'); // end: view engine setup   require('./route_handler.js');  // // uncomment after placing favicon in /public // //app.use(favicon(path.join(__dirname, 'public', 'favicon.ico'))); // app.use(logger('dev')); // app.use(bodyparser.json()); // app.use(bodyparser.urlencoded({ extended: false })); // app.use(cookieparser()); // app.use(require('less-middleware')(path.join(__dirname, 'public'))); // app.use(express.static(path.join(__dirname, 'public')));   // app.use('/', routes); // app.use('/users', users);  // // catch 404 , forward error handler // app.use(function(req, res, next) { //   var err = new error('not found'); //   err.status = 404; //   next(err); // });  // // error handlers  // development error handler // 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 user app.use(function(err, req, res, next) {   res.status(err.status || 500);   res.render('error', {     message: err.message,     error: {}   }); });  module.exports = app; 

route_handler.js

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');  // var app = express();   var routes = require('./routes/index'); var users = require('./routes/users');    // uncomment after placing favicon in /public //express().use(favicon(path.join(__dirname, 'public', 'favicon.ico'))); express().use(logger('dev')); express().use(bodyparser.json()); express().use(bodyparser.urlencoded({ extended: false })); express().use(cookieparser()); express().use(require('less-middleware')(path.join(__dirname, 'public'))); express().use(express.static(path.join(__dirname, 'public')));  express().use('/', routes); express().use('/users', users);  // catch 404 , forward error handler express().use(function(req, res, next) {   var err = new error('not found');   err.status = 404;   next(err); }); 

// expore express() ??

your problem route_handler.js script creates new express instances in every use call, , non of them connected app created in app.js.

what should like:

route_handler.js

// !!!note: no express = require !!! var path = require('path'); var favicon = require('serve-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');    function setuproutes(app) {   // uncomment after placing favicon in /public   //app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')));   app.use(logger('dev'));   app.use(bodyparser.json());   app.use(bodyparser.urlencoded({ extended: false }));   app.use(cookieparser());   ... }  module.exports = setuproutes; 

and app.js

... require('./route_handler.js')(app); ... 

Comments

Popular posts from this blog

Fail to load namespace Spring Security http://www.springframework.org/security/tags -

sql - MySQL query optimization using coalesce -

Maven Javadoc 'Cannot find default setter' and fails -