大多数中间件(如压缩)不再与Express捆绑在一起
Most middleware (like compress) is no longer bundled with Express
我刚刚安装sails@v0.9.16,express@4.0.0,compression@1.0.1和compress@0.1.9(只是为了确保)。但我在运行sails lift
时仍有以下错误
/Users/myuser/myproject/backend/node_modules/express/lib/express.js:89
throw new Error('Most middleware (like ' + name + ') is no longer bundle
^
Error: Most middleware (like compress) is no longer bundled with Express and must be installed separately. Please see https://github.com/senchalabs/connect#middleware.
at Function.Object.defineProperty.get (/Users/myuser/myproject/backend/node_modules/express/lib/express.js:89:13)
at Object.module.exports.express.customMiddleware (/Users/myuser/myproject/backend/config/passport.js:127:20)
at Array.loadExpress [as 1] (/usr/local/lib/node_modules/sails/lib/express/index.js:162:25)
at listener (/usr/local/lib/node_modules/sails/node_modules/async/lib/async.js:462:46)
at /usr/local/lib/node_modules/sails/node_modules/async/lib/async.js:416:17
at Array.forEach (native)
at _each (/usr/local/lib/node_modules/sails/node_modules/async/lib/async.js:32:24)
at Object.taskComplete (/usr/local/lib/node_modules/sails/node_modules/async/lib/async.js:415:13)
at processImmediate [as _immediateCallback] (timers.js:330:15)
知道为什么吗?
Sails不正式支持Express 4;Sails package.json
中的Express依赖项设置为显式版本是有原因的!你可以使用这里的其他答案来尝试运行你的Sails应用程序,但在我们更新核心以使用新的Express之前,你只能靠自己了。
我们计划联系Express团队,尝试在未来更好地同步发布,但目前我们正在努力获得Sails v0.10的稳定发布!
仅仅在express 4.0中安装这些依赖项是不够的。
您现在需要将它们包含在带有的应用程序中
var compression = require('compression');
然后使用它。
这里有一篇相当不错的文章:链接
还有这里:链接
关于如何处理从express 3.x.x迁移到4.x.x
Express 4.0的中间件文档中说,
从4.x起,Express不再依赖Connect。Express以前包含的所有中间件现在都在单独的回购中。请查看中间件列表。现在唯一包含的中间件是express.static().
因此,您必须在package.json
中明确地包含所有需要的中间件,作为依赖项。请参阅引用文本中的链接,了解所有中间件的存储库信息。
https://github.com/expressjs/body-parser/issues/31将您的bodyParser()
更改为app.use(bodyParser.json())
app.use(bodyParser.urlencoded({ extended: true }))
也许你会得到正确的答案。由于express版本3到4,body解析器不在express中,您应该独立安装它。可能会帮助你。
- 将依赖外部库的UMD模块与browserfy捆绑在一起
- 如何将具有相同功能的两个select html标签的两个JS组合在一起
- 将3个函数合并在一起
- 使用javascript将两个输入的日期添加在一起
- 避免将lib依赖项与webpack+handlebas加载程序捆绑在一起
- PHP、Javascript和SQL代码混杂在一起
- 有没有办法把它们串在一起,这样它们基本上可以同时工作
- 如何使用node.js和express在文件中写入结果
- PHP:同时循环元素粘在一起
- 把两个数字加在一起,得到5+10=510,而不是15
- 我怎样把这些剧本写在一起
- 安全地包装JS文件,这样当它们连接在一起时,它们仍然可以工作
- 如何将遗留的js文件与webpack捆绑在一起
- 在 JavaScript 中使用侦听器将输入字段链接在一起
- 如何将表链接在一起
- 如何有效地匹配两个不同 JavaScript 对象上的 id,并将它们合并在一起
- 在Node JS中,Require Express和HTTP在一起和分开有什么区别?
- node.js, backbone, socketio, express和coffee script都在一起吗?
- 我如何将2个异步请求绑定在一起.post调用在Express和NodeJS
- 大多数中间件(如压缩)不再与Express捆绑在一起