2011/11/23 dtang85 <[email protected]>:
> I have a view in my Node app, but the external CSS file does not link
> properly. How do I allow the server I created to send that resource?
> Im very new to this so even a hardcoded static solution would be good.
>
> Here is the JS code that I run in Node:
>
> var http = require('http');
> var url = require('url');
> var fs = require('fs');
>
> var newPostFormHTML = fs.readFileSync('views/home.html');
>
> function renderNewPostForm(request, response) {
> response.writeHead(200, {
> 'Content-type':'text/html; charset=utf-8'
> });
>
> response.end(newPostFormHTML);
> }
>
> function render404(request, response) {
> response.writeHead(404);
> response.end('404 File not found.');
> }
>
> var server = http.createServer(function(request, response) {
> var newPostFormRegex = new RegExp('^/home/?$');
> var pathname = url.parse(request.url).pathname;
> if(newPostFormRegex.test(pathname)) {
> renderNewPostForm(request, response);
> }
> else {
> render404(request, response);
> }
> });
>
> server.listen(8000);
>
> console.log('listening on http://127.0.0.1:8000');
>
var server = http.createServer(function(request, response) {
var newPostFormRegex = new RegExp('^/home/?$'),
stream,
pathname = url.parse(request.url).pathname;
if(newPostFormRegex.test(pathname)) {
renderNewPostForm(request, response);
}
else if (pathname === '/style.css') {
// Open a file stream to the file
stream = fs.createReadStream('style.css');
response.writeHead(200, {
'Content-type': 'text/css; charset=utf-8'
});
// On the stream end, end the response.
stream.on('end', function () {
response.end();
});
// Pipe the file stream to the response.
stream.pipe(response);
}
else {
render404(request, response);
}
});
I'll leave the rest of the logic up to you.
--
Poetro
--
To view archived discussions from the original JSMentors Mailman list:
http://www.mail-archive.com/[email protected]/
To search via a non-Google archive, visit here:
http://www.mail-archive.com/[email protected]/
To unsubscribe from this group, send email to
[email protected]