2
클라이언트 쪽 응용 프로그램이 base64 인코딩 이미지로 POST 요청을 보내려고하면 서버에서이 오류가 발생합니다.Express : readStream에서 오류
Error
at readStream (/Users/.../node_modules/raw-body/index.js:196:17)
at getRawBody (/Users/.../node_modules/raw-body/index.js:106:12)
at read (/Users/.../node_modules/body-parser/lib/read.js:76:3)
at jsonParser (/Users/.../node_modules/body-parser/lib/types/json.js:127:5)
at Layer.handle [as handle_request] (/Users/.../node_modules/express/lib/router/layer.js:95:5)
at trim_prefix (/Users/.../node_modules/express/lib/router/index.js:317:13)
at /Users/.../node_modules/express/lib/router/index.js:284:7
at Function.process_params (/Users/.../node_modules/express/lib/router/index.js:335:12)
at next (/Users/.../node_modules/express/lib/router/index.js:275:10)
at cors (/Users/.../node_modules/cors/lib/index.js:179:7)
at /Users/.../node_modules/cors/lib/index.js:229:17
at originCallback (/Users/.../node_modules/cors/lib/index.js:218:15)
at /Users/.../node_modules/cors/lib/index.js:223:13
at optionsCallback (/Users/.../node_modules/cors/lib/index.js:204:9)
at corsMiddleware (/Users/.../node_modules/cors/lib/index.js:209:7)
at Layer.handle [as handle_request] (/Users/.../node_modules/express/lib/router/layer.js:95:5)
요청 본문을 doublecheck했습니다. base64 문자열의 형식이 잘못되었습니다. 앱이 base64 부분없이 동일한 요청을 보내는 경우 모든 문제가 해결됩니다.
server.js :
import http from 'http'
import express from 'express'
import cors from 'cors'
import morgan from 'morgan'
import bodyParser from 'body-parser'
import api from './api'
import config from './config'
let app = express()
app.server = http.createServer(app)
// logger
app.use(morgan('dev'))
// 3rd party middleware
app.use(cors({
exposedHeaders: config.corsHeaders
}))
app.use(bodyParser.json({
limit : config.bodyLimit
}))
app.use(express.static("./assets"))
// api router
app.use('/api', api)
app.server.listen(process.env.PORT || config.port)
console.log(`Started on port ${app.server.address().port}`)
export default app
api.js
import { Router } from 'express';
const router = Router();
router.post('/createPost', require('./methods/createPost').default)
export default router
FWIW 동일한 문제가 발생했습니다. 아주 작은 테스트 본문으로 요청을 게시하면 성공적으로 처리되지만 요청 본문이 더 크면 (오디오 - 비디오 데이터) 위의 오류가 표시됩니다. – TonyM