var http = require('http')
var fs = require('fs')
var server = http.createServer('request',function(req,res){
var url = req.url
var wwwDir = 'D:/www'
if(url === '/'){
fs.readFile(wwwDir + '/b.txt',function(err,data){
{//反斜杠换为斜杠。//if(err){
//res.end('404')
//}
//else{
//}
if(err){
return res.end('404 not found')
//return在这里的作用:阻止代码继续运行。相当于跳出。
}
res.end(data)
})
}
else if(url === '/a.txt'){
}
else if(url ==='/b.html'){
}
})
server.listen(3000,function(){
console.log('服务器已启动')
})
在文件夹中新添一个文件,如果想要访问它的话,就需要修改代码-----很麻烦,如何简化?
url = /a.txt 访问 = D:/www/a.txt
url = /b.html 访问 = D:/www/b.html
var http = require('http')
var fs = require('fs')
var server = http.createServer('request',function(req,res){
var url = req.url
var wwwDir = 'D:/www'
var filePath = '/index.html'
if(url !== '/'){
filePath = url
}
fs.readFile(wwwDir + filePath , function(err,data){
if(err){
return res.end('404')
}
res.end(data)
})
})
server.listen(5000,function(){
console.log('服务器已启动')
})
文件夹下有index,则显示index。没有index,则显示目录列表
如何得到wwwDir目录列表中的文件名和目录名
fs.readdir('文件路径,注意正斜杠',function(err,files){})
如何将得到的文件名和目录名替换到 template.html 中
(01.模板引擎)
02.在template.html中需要替换的位置预留一个特殊标记。根据files生成需要的html内容
替换----普通的字符串解析替换
data = data.toString() //变成字符串
data = data.replace('mm' , 'pp') //在data里找到mm替换为pp
var http = require('http')
var fs = require('fs')
var server = http.createServer('request',function(req,res){
var url = req.url
var wwwDir = 'D:/www'
fs.readFile('./template.html',function(err,data){
if(err){
return res.end('404')
}
fs.readdir(wwwDir , function(err ,files){
if(err){
return res.end('can not find wwwDir')
}
var content = ''
files.forEach(function (item){
// content += ` //要循环输入的内容 `
//反引号---反引号中的拼接${} ---如 ` hire ${item} feijji ` ==item的值被拼接到content中
// content += `
<tr><th><font color="white" size="2">${ item }</font></th><tr>
`
})
data = data.toString() //变成字符串
data = data.replace('^_^' , content)
res.end(data)
})
})
})
server.listen(3000,function(){
console.log('服务器已启动')
})
// 这种方式不好,字符串太麻烦