我正在使用节点。在应用程序中,我在文件夹中创建了一个名为“ styles”的文件夹,现在我需要编译此文件,在该文件夹中创建了一个名为“ style.styl”的文件,我想在同一文件夹中有一个新的“ style.css”文件。为此,我使用此功能,但是不能工作吗?
var http = require('http'),
express = require('express'),
path = require('path'),
jade = require('jade'),
stylus = require('stylus'),//i am requiring stylus
nib = require('nib'), // nib as well
fs = require('fs'),
app = express();
function compile(str, path) { //dynamically i am comiling here
return stylus(str)
.set('filename', path)
.use(nib());
}
app.set('view engine', 'jade');
app.set('views', __dirname);
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(app.router);
app.use(express.static(__dirname));
app.use(stylus.middleware({ // i am using midware to take care of styl files. but no result
src: __dirname + '/styles',
dest: __dirname + '/styles',
compile: compile,
debug: true,
force: true
}));
有人可以帮我吗?
最佳答案
删除行app.use(app.router)
。我怀疑您的手写笔中间件根本没有执行,因为Express命中了路由器,并在手写笔之前发送了404错误,因为中间件的顺序很重要。