开发promise

// 普通方式

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()

})

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值