快递+手写笔+玉石,没有得到编译

我无法得到这个简单的app.js工作:静态文件被提供,但玉和文件不被编译。 这里的__dirname ls:

damianomacbook:www damiano$ ls app.jade app.js app.styl config.xml johnd.jpg 

.jade和.styl文件通常和普通的服务。 这里当curling css和html文件(中间件函数应该在运行中产生)时会发生什么情况:

 damianomacbook:www damiano$ curl localhost:8080/app.css curl: (52) Empty reply from server damianomacbook:www damiano$ curl localhost:8080/app.html Cannot GET /app.html 

less了什么东西?

有罪代码:

 var express = require('express'); var stylus = require('stylus'); var nib = require('nib'); var app = express(); function compile(str, path) { return stylus(str) .set('filename', path) .use(nib()); } app.use(express.logger('dev')); app.set('views', __dirname); app.set('view engine', 'jade'); app.use(stylus.middleware({ src: __dirname, compile: compile })); app.use(express.static(__dirname)); app.listen(8080); 

您的GET /app.html失败,因为提供HTML页面是通过express路由器完成的,而不是中间件,并且您没有定义任何路由。 静态中间件不会转换任何东西(因此名称),所以它不会为/app.html提供服务,除非在磁盘上有一个实际的app.html文件。 要获得/app.html工作,请添加:

 app.get('/app.html', function (req, res) { res.render('app');}); //or you probably want app.get('/', ...if you want this to be your home page //you probably also don't want/need ".html" in your URLs as this has fallen out of style 

你的手写笔问题是自动分号插入怪物。 你不能把“return”关键字放在一行上。 您的compile函数正在返回undefined而不是手写笔实例。 保持compile格式,因为它是在笔尖文件,一切都很好。