实例2 : 实现获取文件路径,判断是文件还是文件夹,如果是文件夹就显示里面的列表文件,如果是文件就显示里面的内容
defaultConfig.js
module.exports={
root:process.cwd(),
hostname:'127.0.0.1',
port:9527
}
app.js
const http = require('http');
const chalk = require('chalk')
const path = require('path')
const fs =require('fs')
const conf = require('./config/defaultConfig.js');
const server = http.createServer((req,res)=>{
const url = req.url;
//拿到文件路径
const filePath = path.join(conf.root,req.url)
// 判断是一个文件夹还是一个文件
fs.stat(filePath,(err,stats)=>{
if(err){
res.statusCode = 404
res.setHeader('content-Type','text/plain')
res.end(`${filePath} is not a directory or file`)
return
}
if(stats.isFile()){
res.statusCode = 200
res.setHeader('content-Type','text/plain')
fs.createReadStream(filePath).pipe(res);
// fs.readFile(filePath,(err,data)=>{
// res.end(data)
// });
}else if(stats.isDirectory()){
fs.readdir(filePath,(err,files)=>{
res.statusCode = 200
res.setHeader('content-Type','text/plain')
res.end(files.join(','));
})
}
})
});
server.listen(conf.port,conf.hostname,()=>{
const addr = `http://${conf.hostname}:${conf.port}`;
console.log(`Server started at ${chalk.green(addr)}`);
})