同步读取数据
var fs = require('fs');
module.exports = {
readfile:function(path){// 异步执行
fs.readFile(path,function(err,data){
if(err){
console.log(err);
}else{
console.log(data.toString());
}
});
console.log('异步方法执行完毕。');
},
readfileSync:function(path){
var data = fs.readFileSync(path,'utf-8');
console.log(data);
console.log('同步方法执行完毕');
}
}
var http = require('http');
var optfile = require('./optfile.js');
http.createServer(function (request,response){
response.writeHead(200, {'Contet-Type':'text/html;charset=utf-8'});
if(request.url!=='/favicon.ico'){// 去除第二次重复请求
optfile.readfileSync('./file/login.html');
response.end('ok!');// 不写则没有http协议尾
}
}).listen(8000);
console.log('Server running at http://127.0.0.1:8000/');
异步读取数据
var http = require('http');
var optfile = require('./optfile.js');
http.createServer(function (request,response){
response.writeHead(200, {'Contet-Type':'text/html;charset=utf-8'});
if(request.url!=='/favicon.ico'){// 去除第二次重复请求
//optfile.readfileSync('./file/login.html');
optfile.readfile('./file/login.html');
response.end('ok!');// 不写则没有http协议尾
console.log('主程序执行完毕');
}
}).listen(8000);
console.log('Server running at http://127.0.0.1:8000/');
把读取的数据打印到前台
当我们按下面写的时候,会报错,已经结束了,才往页面写。
var http = require('http');
var indexfile = require('./readfile');
http.createServer(function (request,response){
response.writeHead(200,{'Contet-Type':'text/html;charset=utf-8'});
if(request.url!=='/favicon.ico'){
indexfile.readfile('./model/index.html',response);
response.end('ok');
console.log('主程序完毕');
}
}).listen("8000");
console.log("Server is 8000");
var fs = require('fs');
module.exports = {
readfile:function(path,res){// 异步执行
fs.readFile(path,function(err,data){
if(err){
console.log(err);
}else{
console.log(data.toString());
res.write(data);
}
});
console.log('异步方法执行完毕。');
},
readfileSync:function(path){
var data = fs.readFileSync(path,'utf-8');
console.log(data);
console.log('同步方法执行完毕');
}
}
采用闭包,回调函数
var http = require('http');
var indexfile = require('./readfile');
http.createServer(function (request,response){
response.writeHead(200,{'Contet-Type':'text/html;charset=utf-8'});
if(request.url!=='/favicon.ico'){
function recall(data){
response.write(data);
response.end('ok');
}
indexfile.readfile('./model/index.html',recall);
console.log('主程序完毕');
}
}).listen("8000");
console.log("Server is 8000");
var fs = require('fs');
module.exports = {
readfile:function(path,recall){// 异步执行
fs.readFile(path,function(err,data){
if(err){
console.log(err);
}else{
console.log(data.toString());
recall(data);
}
});
console.log('异步方法执行完毕。');
},
readfileSync:function(path){
var data = fs.readFileSync(path,'utf-8');
console.log(data);
console.log('同步方法执行完毕');
}
}
跟路由整合
var http = require('http');
var url = require('url');
var router = require('./router');
http.createServer(function (request,response){
response.writeHead(200,{'Contet-Type':'text/html;charset=utf-8'});
if(request.url!=='/favicon.ico'){// 去除第二次访问
var pathname = url.parse(request.url).pathname;
pathname = pathname.replace(/\//,'');// 替换掉前面的/
router[pathname](request,response);
console.log('主程序完毕');
}
}).listen("8000");
console.log("Server is 8000");
var indexfile = require('./readfile');
module.exports = {
login:function(request,response){// 异步执行
function recall(data){
response.write(data);
response.end('ok');
}
indexfile.readfile('./model/index.html',recall);
console.log('login 路由 异步方法执行完毕。');
},
zhuce:function(request,response){
function recall(data){
response.write(data);
response.end('ok');
}
indexfile.readfile('./model/index.html',recall);
console.log('zhece 路由 异步方法执行完毕。');
}
}
var fs = require('fs');
module.exports = {
readfile:function(path,recall){// 异步执行
fs.readFile(path,function(err,data){
if(err){
console.log(err);
}else{
console.log(data.toString());
recall(data);
}
});
console.log('异步方法执行完毕。');
},
readfileSync:function(path){
var data = fs.readFileSync(path,'utf-8');
console.log(data);
console.log('同步方法执行完毕');
}
}