1
+ var http = require ( 'http' ) ;
2
+ var fs = require ( 'fs' ) ;
3
+ var path = require ( 'path' ) ;
4
+
5
+ var server = http . createServer ( ) ;
6
+
7
+ var notFound = function ( response ) {
8
+ response . statusCode = 404 ;
9
+ response . setHeader ( 'Content-Type' , 'text/plain' ) ;
10
+ response . end ( 'I not haz the page' ) ;
11
+ } ;
12
+
13
+ server . on ( 'request' , function ( request , response ) {
14
+ var filename = null ;
15
+
16
+ console . log ( 'request received for' , request . url ) ;
17
+ if ( request . url === '/' ) {
18
+ filename = './public/index.html' ;
19
+ }
20
+ else {
21
+ filename = './public' + request . url ;
22
+ }
23
+
24
+ fs . exists ( filename , function ( exists ) {
25
+ if ( ! exists ) return notFound ( response ) ;
26
+
27
+ response . statusCode = 200 ;
28
+ response . setHeader ( 'Content-Type' , 'text/plain' ) ;
29
+
30
+ var stream = fs . createReadStream ( filename ) ;
31
+ stream . on ( 'data' , function ( data ) {
32
+ response . write ( data ) ;
33
+ console . log ( 'returning chunk' ) ;
34
+ } ) ;
35
+ stream . on ( 'end' , function ( ) {
36
+ response . end ( ) ;
37
+ console . log ( 'response sent' ) ;
38
+ } ) ;
39
+ stream . on ( 'error' , function ( err ) {
40
+ console . error ( 'Oh no!' , err ) ;
41
+ } ) ;
42
+ } ) ;
43
+ } ) ;
44
+
45
+ server . listen ( 8000 , function ( ) {
46
+ console . log ( 'Server listening on port 8000...' ) ;
47
+ } ) ;
0 commit comments