使用 webapp.connecthandlers 时 mup 部署错误
mup deploy errors when using webapp.connecthandlers
我正在尝试在访问我的 "www" url 时实施 301 重定向以重新路由到 "non-www"。重定向在 localhost 上有效,项目构建良好。当我尝试使用 mup 进行部署时,出现此错误:
x Invoking deployment process: FAILED
-----------------------------------STDERR-----------------------------------
:callback’ will be initialized after [-Wreorder]
v8::Handle<v8::Function> callback;
^
../src/heap_output_stream.h:26:29: warning: ‘v8::Handle<v8::Value> nodex::OutputStreamAdapter::abort’ [-Wreorder]
v8::Handle<v8::Value> abort;
^
../src/heap_output_stream.h:11:7: warning: when initialized here [-Wreorder]
OutputStreamAdapter(
^
gyp info ok
npm WARN package.json meteor-dev-bundle@0.0.0 No description
npm WARN package.json meteor-dev-bundle@0.0.0 No repository field.
npm WARN package.json meteor-dev-bundle@0.0.0 No README data
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0curl: (7) Failed to connect to localhost port 80: Connection refused
Latest deployment failed! Reverted back to the previous version.
这是有问题的代码。当我删除它时,mup 工作正常。
此代码位于 /lib/_reroute-non-www.js
if( Meteor.isServer ){
WebApp.connectHandlers.use(function(req, res, next){
if( req.headers.host == 'www.example.com' ){
res.writeHead(301, {
Location: 'https://example.com'
})
res.end()
} else {
next()
}
})
}
这是什么意思?
虽然我不完全确定为什么这组特定的代码会导致 mup
到 "throw up" 像这样,但我确实找到了其他可能相关的原因。
使用 RabbitMQ(通过 Wascally)时,我的消费者处理程序必须使用
注册
Fiber(()=>{
rabbit.handle(key, consumerFn)
}).run()
... 在 consumeFn()
里面我没有可用的 Meteor 环境!没有 Meteor
,而且我无权访问可能已在我的应用程序中定义的任何集合。
我能做的是在我的 then
处理程序上使用 Meteor.bindEnvironment
来处理我注册处理程序时返回的承诺。使用 Meteor.bindEnvironment
让我可以访问我希望在我的 Meteor 应用程序中拥有的所有内容。
Wascally.request(key, {content: 'my content'})
.then(Meteor.bindEnvironment((result)=>{
// now i have access to my Meteor environment and all collections
}))
我正在尝试在访问我的 "www" url 时实施 301 重定向以重新路由到 "non-www"。重定向在 localhost 上有效,项目构建良好。当我尝试使用 mup 进行部署时,出现此错误:
x Invoking deployment process: FAILED
-----------------------------------STDERR-----------------------------------
:callback’ will be initialized after [-Wreorder]
v8::Handle<v8::Function> callback;
^
../src/heap_output_stream.h:26:29: warning: ‘v8::Handle<v8::Value> nodex::OutputStreamAdapter::abort’ [-Wreorder]
v8::Handle<v8::Value> abort;
^
../src/heap_output_stream.h:11:7: warning: when initialized here [-Wreorder]
OutputStreamAdapter(
^
gyp info ok
npm WARN package.json meteor-dev-bundle@0.0.0 No description
npm WARN package.json meteor-dev-bundle@0.0.0 No repository field.
npm WARN package.json meteor-dev-bundle@0.0.0 No README data
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0curl: (7) Failed to connect to localhost port 80: Connection refused
Latest deployment failed! Reverted back to the previous version.
这是有问题的代码。当我删除它时,mup 工作正常。
此代码位于 /lib/_reroute-non-www.js
if( Meteor.isServer ){
WebApp.connectHandlers.use(function(req, res, next){
if( req.headers.host == 'www.example.com' ){
res.writeHead(301, {
Location: 'https://example.com'
})
res.end()
} else {
next()
}
})
}
这是什么意思?
虽然我不完全确定为什么这组特定的代码会导致 mup
到 "throw up" 像这样,但我确实找到了其他可能相关的原因。
使用 RabbitMQ(通过 Wascally)时,我的消费者处理程序必须使用
注册Fiber(()=>{
rabbit.handle(key, consumerFn)
}).run()
... 在 consumeFn()
里面我没有可用的 Meteor 环境!没有 Meteor
,而且我无权访问可能已在我的应用程序中定义的任何集合。
我能做的是在我的 then
处理程序上使用 Meteor.bindEnvironment
来处理我注册处理程序时返回的承诺。使用 Meteor.bindEnvironment
让我可以访问我希望在我的 Meteor 应用程序中拥有的所有内容。
Wascally.request(key, {content: 'my content'})
.then(Meteor.bindEnvironment((result)=>{
// now i have access to my Meteor environment and all collections
}))