i don't know touched stopped serving static files. have following architecture:
app
- routes
- models
public
- views
- css
- js
- server.js
the error:
error: cannot find module 'html' @ function.module._resolvefilename (module.js:325:15) ... @ /users/.../vintageaddiction/app/routes/indexroutes.js:12:11
indexroutes.js:
var express = require('express'); var passport = require('passport'); var indexrouter = express.router(); indexrouter.route('/').get( function(req, res) { res.render('index.html'); // load index.ejs file }); module.exports = indexrouter;
server.js:
// server.js // set ====================================================================== // tools need var express = require('express'); var app = express(); var port = process.env.port || 8080; var mongoose = require('mongoose'); var passport = require('passport'); var flash = require('connect-flash'); var morgan = require('morgan'); var cookieparser = require('cookie-parser'); var bodyparser = require('body-parser'); var session = require('express-session'); var configdb = require('./app/config/configdb.js'); // configuration =============================================================== mongoose.connect(configdb.url); // connect our database require('./app/config/passport')(passport); // pass passport configuration // routes ====================================================================== var routes = require('./app/routes/indexroutes.js'); // load our routes , pass in our app , configured passport var adminroutes = require('./app/routes/adminroutes.js'); // set our express application app.use(morgan('dev')); // log every request console app.use(cookieparser()); // read cookies (needed auth) app.use(bodyparser()); // information html forms // app.set('view engine', 'ejs'); // set ejs templating // required passport app.use(session({ secret: 'vintageisthelaw' })); // session secret app.use(passport.initialize()); app.use(passport.session()); // persistent login sessions app.use(flash()); // use connect-flash flash messages stored in session app.use('/', routes); app.use('/admin', adminroutes); // set static files location // used requests our frontend make app.use(express.static(__dirname + '/public/')); app.set('views', __dirname + '/public/views'); app.set('view engine', 'jade'); // launch ====================================================================== app.listen(port); console.log('the magic happens on :\n\n http://localhost:'+ port+'\n\n');
i've seen similar :
app.use(express.static(__dirname + '/public/views/'));
but don't understand why not working hope can me guys !
in express.js order of middleware declaration important. must define express.static
middleware earlier of routes:
server.js:
.. require // logger must defined first if want log requests app.use(morgan('dev')); // after should define express.static middleware app.use(express.static(__dirname + '/public/')); app.set('views', __dirname + '/public/views'); app.set('view engine', 'jade'); // cookie , body parser must defined before passport , session middleware app.use(cookieparser()); app.use(bodyparser()); app.use(session({ secret: 'vintageisthelaw' })); app.use(passport.initialize()); app.use(passport.session()); app.use(flash()); // routes must defined in end app.use('/', routes); app.use('/admin', adminroutes); app.listen(port); console.log('the magic happens on :\n\n http://localhost:'+ port+'\n\n');
Comments
Post a Comment