无法将nib添加到我的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')); }); 

但是,当我启动服务器,我得到这个错误:

 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) 

任何build议来解决这个问题?

请在“开发”模式下尝试此操作,因为您不希望在生产环境中运行时编写触控笔:

 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')); }); 

这是我常用的笔尖和手写笔。 在设置完成之后,您需要将您的require("stylus")作为stylus = require("stylus")移动到顶端,类似于您的require("nib")

development之后你将不得不拥有你的一般configure方法列表。