Express.js"app.use()需要中间件功能"

the*_*ica 2 javascript sass node.js express

我正在学习Express.js 4和Node,我收到的错误是我无法弄清楚的.

我正在尝试使用node-sass包来编译我的sass代码,但是我无法启动并运行它.

这是我的主文件的精简版:

var express = require('express');
var sass = require('node-sass');

var app = express();

app.use(sass.middleware({
    src: __dirname + "/assets",
    dest: __dirname + "/static",
    debug: true
}));

app.use(express.static(__dirname + '/static'));

app.get('/', function(req, res){    
    res.send("Hello World");    
});

var server = app.listen(3000, function() {
    console.log("Node is now listening.");
});
Run Code Online (Sandbox Code Playgroud)

当我运行时node server.js,我收到一个错误:

TypeError: app.use() requires middleware functions
Run Code Online (Sandbox Code Playgroud)

由此,我假设这sass.middleware不是一个中间件功能......

  1. 这个错误是什么意思?

  2. 它为什么被抛出?

  3. 我如何解决它?


我能找到的最接近的答案来自这个问题,但我从这里得到的答案是,这些答案只适用于Express 3.

如果有人能指出我如何将Express 4和Sass设置在一起(如果确实可以的话),我将非常感激.

msc*_*dex 8

node-sass自述提到,中间件已经被移动node-sass-middleware.所以,如果你npm install node-sass-middleware然后做:

var sassMiddleware = require('node-sass-middleware');
app.use(sassMiddleware({
  src: __dirname + "/assets",
  dest: __dirname + "/static",
  debug: true
}));
Run Code Online (Sandbox Code Playgroud)

它应该工作.