我目前正在开发一个express.js Web应用程序,正在开发MS Webmatrix附带的样板应用程序。我可以在我的计算机上运行该应用程序,但是当我推送到 nodejitsu 或使用另一台从 git 获取该应用程序的计算机时,我收到阻止服务器启动的错误。
app.use(express.compiler({ src: __dirname + '/public', enable: ['less'] })
^
TypeError: Object function createApplication() {
var app = connect();
utils.merge(app, proto);
app.request = { __proto__: req };
app.response = { __proto__: res };
app.init();
return app;
} has no method 'compiler'
at Function.<anonymous> (C:\Users\hoopdog2\Desktop\afterthoughts_nodejs\serv
er.js:197:21)
at Function.app.configure (C:\Users\hoopdog2\Desktop\afterthoughts_nodejs\no
de_modules\express\lib\application.js:399:61)
at Object.<anonymous> (C:\Users\hoopdog2\Desktop\afterthoughts_nodejs\server
.js:188:5)
at Module._compile (module.js:449:26)
at Object.Module._extensions..js (module.js:467:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.runMain (module.js:492:10)
at process.startup.processNextTick.process._tickCallback (node.js:244:9)
该应用程序使用的依赖项是
"node-uuid": ">= 1.3.3",
"everyauth": ">= 0.2.29",
"nconf": ">= 0.5.1",
"express": ">= 2.5.0",
"jade": ">= 0.18.0",
"less": ">= 1.1.5",
"socket.io": ">= 0.8.7",
"connect": ">=1.8.5",
"recaptcha": ">=1.1.0"
我正在使用 Node 版本 0.8.7。非常感谢任何有关可能导致此错误的原因的建议
最佳答案
Express 的编译器
中间件来自 Connect 框架,自 2011 年 7 月起,Connect 不再包含编译器
。因此,执行 express.compiler(...)
不再起作用。
已经创建了一个不太特定的中间件,如果您将其包含在启动配置中,Express 现在会使用它。 express -c less
会将这一行添加到配置中:
app.use(require('less-middleware')({ src: __dirname + '/public' }));
如果您有旧版本的 Express and Connect,您可以将 less-middleware
添加到 package.json
中,并添加上面的行以使其正常工作。
它的工作原理与原始编译器几乎相同,但包含更多功能。
关于javascript - Node js Express.编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12055549/