Closed dfischer closed 9 years ago
@electricjesus this is the error I get when trying to hit it locally. Apparently this is an error that can come up if the order of params is wrong with express? Not sure, but that was with some minor googling. What version of prerender-node did you use with Meteor?
Aha, I totally forgot all about the differences between express and connect's request object. Basically express has an extra function called req.get
on the Request object that simply just returns the corresponding header.
Here's a quick fix:
WebApp.connectHandlers.use(function(req, res, next) {
req.get = function(param) {
return req.headers[param.toLowerCase()];
};
prerenderio(req, res, next);
return next();
});
I have tested this, however now I seem to be getting this:
Error: Can't set headers after they are sent.
at ServerResponse.OutgoingMessage.setHeader (http.js:689:11)
at ServerResponse.res.setHeader (/home/seth/.meteor/packages/webapp/.1.1.3.mekt++os+web.browser+web.cordova/npm/node_modules/connect/lib/patch.js:59:22)
at next (/home/seth/.meteor/packages/webapp/.1.1.3.mekt++os+web.browser+web.cordova/npm/node_modules/connect/lib/proto.js:153:13)
at next (/home/seth/.meteor/packages/webapp/.1.1.3.mekt++os+web.browser+web.cordova/npm/node_modules/connect/lib/proto.js:127:23)
at Object.handle (app/prerenderio.js:28:9)
at next (/home/seth/.meteor/packages/webapp/.1.1.3.mekt++os+web.browser+web.cordova/npm/node_modules/connect/lib/proto.js:190:15)
at Function.app.handle (/home/seth/.meteor/packages/webapp/.1.1.3.mekt++os+web.browser+web.cordova/npm/node_modules/connect/lib/proto.js:198:3)
at Object.fn [as handle] (/home/seth/.meteor/packages/webapp/.1.1.3.mekt++os+web.browser+web.cordova/npm/node_modules/connect/lib/proto.js:74:14)
at next (/home/seth/.meteor/packages/webapp/.1.1.3.mekt++os+web.browser+web.cordova/npm/node_modules/connect/lib/proto.js:190:15)
at Object.WebAppInternals.staticFilesMiddleware (packages/webapp/webapp_server.js:400)
hasn't happened before to be honest.. must be a timing issue somewhere since prerender seems to want to modify headers..
OK the above pull request actually comes through without errors at all. Can you check?
ah f-- that was a stupid commit. Resubmitted.
End up getting this error:
Your app is crashing. Here's the latest log.
Akismet: Successfully authenticated key and blog
Prerender Token: token
/Users/Daniel/Code/myapp/myapp-app/.meteor/local/build/programs/server/packages/meteorhacks_kadira.js:3078
throw err;
^
ReferenceError: WebApp is not defined
at Package (packages/dfischer:prerenderio/dfischer:prerenderio.js:6)
at /Users/Daniel/Code/myapp/myapp-app/.meteor/local/build/programs/server/packages/dfischer_prerenderio.js:163:4
at /Users/Daniel/Code/myapp/myapp-app/.meteor/local/build/programs/server/packages/dfischer_prerenderio.js:170:3
at /Users/Daniel/Code/myapp/myapp-app/.meteor/local/build/programs/server/boot.js:168:10
at Array.forEach (native)
at Function._.each._.forEach (/Users/Daniel/.meteor/packages/meteor-tool/.1.0.33.n7158r++os.osx.x86_64+web.browser+web.cordova/meteor-tool-os.osx.x86_64/dev_bundle/lib/node_modules/underscore/underscore.js:79:11)
at /Users/Daniel/Code/myapp/myapp-app/.meteor/local/build/programs/server/boot.js:82:5
=> Exited with code: 7
=> Your application is crashing. Waiting for file change.
If I wrap it in meteor.startup
which you removed I get this:
Unexpected error
W20141024-12:12:11.252(-7)? (STDERR)
W20141024-12:12:11.254(-7)? (STDERR) /Users/Daniel/Code/myapp/myapp-app/.meteor/local/build/programs/server/packages/meteorhacks_kadira.js:3084
W20141024-12:12:11.255(-7)? (STDERR) throw err;
W20141024-12:12:11.256(-7)? (STDERR) ^
W20141024-12:12:11.257(-7)? (STDERR) ReferenceError: deprecate is not defined
W20141024-12:12:11.258(-7)? (STDERR) at ServerResponse.send (packages/dfischer:prerenderio/dfischer:prerenderio.js:58)
W20141024-12:12:11.259(-7)? (STDERR) at /Users/Daniel/Code/opensource/dfischer:prerenderio/.build.dfischer:prerenderio/npm/node_modules/prerender-node/index.js:20:20
W20141024-12:12:11.270(-7)? (STDERR) at Gunzip.<anonymous> (/Users/Daniel/Code/opensource/dfischer:prerenderio/.build.dfischer:prerenderio/npm/node_modules/prerender-node/index.js:177:5)
W20141024-12:12:11.291(-7)? (STDERR) at Gunzip.emit (events.js:117:20)
W20141024-12:12:11.292(-7)? (STDERR) at _stream_readable.js:929:16
W20141024-12:12:11.293(-7)? (STDERR) at process._tickCallback (node.js:419:13)
How about now? deprecate
was just part of the express send API that just shows (developers) deprecation messages depending on a module. I put in a quick replacement function but if you want to use the original you can just do var deprecate = Npm.require('depd')('express');
@electricjesus i don't see any commits or PRs? I'll try that var deprecate in the mean time.
@electricjesus so I tried it again and I Just get a blank page.
It sent the request to prerenderio but it's a blank html page.
(STDERR) Mon, 27 Oct 2014 21:32:10 GMT express deprecated res.send(status, body): Use res.status(status).send(body) instead at ../../../../../../../opensource/dfischer:prerenderio/.build.dfischer:prerenderio/npm/node_modules/prerender-node/index.js:20:20
Actually I think we're good. It didn't work because of localhost. Thanks buddy! :+1:
Yup. put in a meta fragment always if your page is JS generated (i.e. all of meteor client-side :D)
Have a good day!
SETH C. MALAKI - I.T. EXPERT EXTRAORDINAIRE. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - *- - - - - -
"Better call E.J.!" *-you.*
On Tue, Oct 28, 2014 at 6:34 AM, Daniel Fischer notifications@github.com wrote:
Closed #1 https://github.com/dfischer/meteor-prerenderio/issues/1.
Reply to this email directly or view it on GitHub https://github.com/dfischer/meteor-prerenderio/issues/1#event-184384158.