第一步安装express启动服务
const express = require('express')
const app = new express()
app.listen(5000, () => {
console.log(running...)
})
第二步配置路由
appJS文件中内容
const express = require('express')
const router = require('./router/index') // 路由模块
const app = new express()
app.use(router)
app.listen(5000, () => {
console.log(running...)
})
router路由模块内容
const express = require('express')
const fs = require('fs') // 文件处理模块
const path = require('path') // 路径处理模块
const router = new express.Router()
// 根据文件名返回文件内容
router.get('/', (req, res) => {
})
// 返回所有.txt文件数目和名称
router.get('/filse', (req, res) => {
})
实现路由功能
第一步实现根据文件名称返回文件内容
router.get('/', (req, res) => {
let fileName = req.query.name
fileName = fileName || 'demo.txt'
// 获取要读取文件的路径
let filePath = path.resolve(__dirname, `../data/${fileName}`)
// 开始读取文件
fs.readFile(filePath, function (err, data) {
if(err) return console.log(err)
res.send(JSON.stringify(data.toString()))
})
})
第二步返回所有.txt文件数目和名称
在util文件夹创建工具类,实现根据文件后缀名过滤文件方法
const fs = require('fs')
const path = require('path')
/**
*
* @param {要读取的目录路径} dir
*/
module.exports = function(dir) {
let files = []
var list = fs.readdirSync(dir)
list.forEach(function(file) {
if(path.extname(file) === '.txt') {
files.push(file)
}
})
let obj = {
num: files.length,
filesName: files
}
return obj
}
第二步实现路由功能
const readDir= require('../utils/utils') // 导入读取文件目录的方法
router.get('/files', (req, res) => {
let filePath = path.resolve(__dirname, '../data')
res.send(readDir(filePath))
})
路由全部代码
const express = require('express')
const fs = require('fs')
const path = require('path')
const router = express.Router()
const readDir = require('../utils/utils')
// 文件读取路由
router.get('/', (req, res) => {
let fileName = req.query.name
fileName = fileName || 'demo.txt'
// 获取要读取文件的路径
let filePath = path.resolve(__dirname, `../data/${fileName}`)
// 开始读取文件
fs.readFile(filePath, function (err, data) {
if(err) return console.log(err)
res.send(JSON.stringify(data.toString()))
})
})
// 获取文件个数及文件名称路由
router.get('/files', (req, res) => {
let filePath = path.resolve(__dirname, '../data')
res.send(readDir(filePath))
})
// 配置404
router.all('*', (req, res) => {
fs.readFile(path.resolve(__dirname, '../public/404.html'), (err, data) => {
if(err) throw err
res.send(data.toString())
})
})
module.exports = router