2011-11-17 7 views
2

J'ai suivi l'exemple here d'ajouter nib sur mon site:Impossible d'inclure la plume sur mon site expressjs/nodejs?

/** 
* Module dependencies. 
*/ 

var express = require('express') 
    , routes = require('./routes') 
    , nib = require('nib'); 

var app = module.exports = express.createServer(); 

// Configuration 

app.configure(function(){ 
    app.set('views', __dirname + '/views'); 
    app.set('view engine', 'jade'); 
    app.use(express.bodyParser()); 
    app.use(express.methodOverride()); 
    app.use(express.cookieParser()); 
    app.use(express.session({ secret: 'your secret here' })); 
    app.use(require('stylus').middleware({ src: __dirname + '/public' })); 
    app.use(nib()); 
    app.use(app.router); 
    app.use(express.static(__dirname + '/public')); 
}); 

Mais quand je lance le serveur je reçois cette erreur:

500 TypeError: Object #<IncomingMessage> has no method 'include' 
at Object.handle (/home/alex/apps/foo/node_modules/nib/lib/nib.js:51:11) 
at next (/home/alex/apps/foo/node_modules/express/node_modules/connect/lib/http.js:201:15) 
at Object.handle (/home/alex/apps/foo/node_modules/stylus/lib/middleware.js:187:7) 
at next (/home/alex/apps/foo/node_modules/express/node_modules/connect/lib/http.js:201:15) 
at /home/alex/apps/foo/node_modules/express/node_modules/connect/lib/middleware/session.js:323:9 
at /home/alex/apps/foo/node_modules/express/node_modules/connect/lib/middleware/session.js:342:9 
at Array.0 (/home/alex/apps/foo/node_modules/express/node_modules/connect/lib/middleware/session/memory.js:52:9) 
at EventEmitter._tickCallback (node.js:126:26) 

Toutes les suggestions pour résoudre ce problème?

Répondre

0

essayer dans votre mode « développement » puisque vous ne voulez pas avoir stylet compilation lors de l'exécution dans un environnement de production:

app.configure('development', function(){ 
    var stylusMiddleware = stylus.middleware({ 
    src: __dirname + '/stylus/', // .styl files are located in `/stylus` 
    dest: __dirname + '/public/', // .styl resources are compiled `/css/*.css` 
    debug: true, 
    compile: function(str, path) { // optional, but recommended 
    return stylus(str) 
     .set('filename', path) 
     .set('warn', true) 
     .set('compress', true) 
     .use(nib()); 
    } 
    }); 
    app.use(stylusMiddleware); 
    app.use(express.errorHandler({ dumpExceptions: true, showStack: true })); 
}); 

app.configure('production', function(){ 
    app.use(express.errorHandler()); 
}); 

app.configure(function(){ 
    app.set('views', __dirname + '/views'); 
    app.set('view engine', 'jade'); 
    app.use(express.bodyParser()); 
    app.use(express.methodOverride()); 
    app.use(app.router); 
    app.use(express['static'](__dirname + '/public')); 
}); 

que ma configuration habituelle avec pointe et stylet. et avec cette mise en place, vous devez déplacer votre require("stylus") vers le haut comme stylus = require("stylus"), similaire à votre require("nib").

vous devrez avoir votre liste de méthode générale configure après la development.

Questions connexes