让你明明白白学知识,有代码,有讲解,抄的走,学的会!
// 创建一个Buffer
let b1 = Buffer.from('1')
let b2 = "2"
// true
console.log('是不是二进制数据--》',Buffer.isBuffer(b1))
// false
console.log('跟一个字符串相加以后呢--》',Buffer.isBuffer(b1+b2))
let b3 = Buffer.from('3')
// false
console.log('2个Buffer相加呢-》',Buffer.isBuffer(b1+b3))
// string
console.log('typeof (b1+b3)', typeof (b1+b3))
运行结果:

从运行结果,我们可以看出
- 2个buffer相加,会调用toString方法,变成字符串的相加
- 字符串与Buffer的相结合,还是会先将Buffer转成字符串,再相加
所以,接下来的常见的POST请求中的,你应该知道,数据是什么类型?
const express = require('express')
const router = express.Router()
const app = express()
router.post('/api/uploadFile',(req, res)=> {
let data = ''
req.on('data', (chunk)=> {
// 看这里的chunk
console.log(Buffer.isBuffer(chunk)) // true -- 是 Buffer
data += chunk
console.log(Buffer.isBuffer(data)) // false--已经变成字符串了
})
req.on('end', (err)=> {
if(err) throw err
// 这里拿到的data 就是一个 【字符串类型】 的数据
})
})
app.use(router)
app.listen(3001, ()=> {
console.log('http://localhost:3001')
})