// 普通方式
const fs = require('fs')
const path = require('path')
const fulFileName = path.resolve(__dirname, 'files', 'a.json')
fs.readFile(fulFileName, (err, data) => {
if(err){
console.log(err);
return
}
console.log(data.toString());
})
// 回调函数
// 回调函数
function getFileContent (fileName, callback) {
const fulFileName = path.resolve(__dirname, 'files', fileName)
fs.readFile(fulFileName, (err, data) => {
if (err) {
console.log(err);
return
}
callback(JSON.parse(data.toString()))
})
}
getFileContent('a.json', aData => {
console.log('aData', aData);
getFileContent('b.json', bData => {
console.log('bData', bData);
})
})
// 使用promise
// 使用promise
function getFileContent (fileName) {
const promise = new Promise((resolve, reject) => {
const fulFileName = path.resolve(__dirname, 'files', fileName)
fs.readFile(fulFileName, (err, data) => {
if (err) {
reject(err);
return
}
resolve(JSON.parse(data.toString()))
})
})
return promise
}
getFileContent('a.json').then(aData => {
console.log('a data', aData);
return getFileContent('b.json').then(bData => {
console.log('b data', bData);
})
})
路由开发(处理POST请求)
// app.js
const getPostData = (req) => {
const promise = new Promise((resolve, reject) => {
if (req.method !== 'POST') {
resolve({})
return
}
if (req.headers['content-type'] != 'application/json') {
resolve({})
return
}
let postData = ''
req.on('data', chunk => {
postData += chunk.toString()
})
req.on('end', () => {
if (!postData) {
resolve({})
return
}
resolve(JSON.parse(postData))
})
})
return promise
}
// 处理postData
getPostData(req).then(postData => {
req.body = postData
// 处理 blog 博客接口
const blogData = handleBlogRouter(req, res);
if (blogData) {
res.end(JSON.stringify(blogData))
return
}
// 处理user登录接口
const userData = handleUserRouter(req, res)
if (userData) {
res.end(JSON.stringify(userData))
return
}
// 如果没有路由 返回显示的是 404
res.writeHead(404, { "Content-Type": "text/plain" })
res.write('404 Not Found')
res.end()
})