nodejsを使ってウェブサイトを作ります.

1623 ワード

前の勉強はもう一つのサイトのトップページを見せられましたが、ウェブサイトは一つのページだけではなく、他のページも必要です.上のプログラムを実行している時に、コンソールがnodeパス\index.jsを入力した時に、Onerequest関数は実行されません.ブラウザを更新する時だけ実行されます.トップページでハイパーリンクをクリックした時に、直接にOnerequest関数を実行します.ファイルはtplフォルダに保存されていますので、realpathのパスはconfig.root+pathnameでは入手できません.だから、server.jsファイルは改造が必要です.
//  server.js
	var config = require('./common/config');
	var http   = require('http');
	var fs     = require('fs');
	var url    = require('url');
	var path   = require('path');
	var FServer   = require('./server/FServer');
	function index(){
		var indexPath = config.ui + '/index.html';
		fs.exists(indexPath, function(exists){
			if( !exists ) {
				throw err;
			} else {
				fs.readFile(indexPath, function(err, data){
					if (err) {
						throw err;	
					} else {
						function onRequest(req, res){
							//       
							var pathname = url.parse(req.url).pathname;
							//        (    .)
							var extname = path.extname( pathname );
							var type = extname.slice(1);
							//              ,
							var realPath = config.root + pathname;
							if ( extname === '' ) {
								res.writeHead(200, {'Content-Type':'text/html'});
								res.write(data);
								res.end();
							} else{ 
								//       
							 	if( type == 'html' )
									realPath = config.root + '/tpl' + pathname;
								}
								FServer.filesLoad(realPath, type, req, res);
							} 
						}
						http.createServer(onRequest).listen(config.port);
					}
				})
			}
		})
	 }
	exports.index = index;
を改造したら、元のページに金泰のページを追加できます.