[문제해결][Express] Uncaught (in promise) SyntaxError: Unexpected token < in JSON at position 0


Uncaught (in promise) SyntaxError: Unexpected token < in JSON at position 0

비동기 통신 간에 에러가 발생했다.

express() 도큐먼트를 살펴보면

strict의 defalut값은 true인데 이 상태에선 array와 object만 허용하는 것을 알 수 있다.

하지만 문자열을 받아야 하므로 strict 프로퍼티의 값을 false로 변환해야 했다.

express.json([options]) 메서드를 사용하고
options는 object 형식이므로

다음과 같은 식을 작성해주면 해결된다.
app.use(express.json({ strict: false }));

const port = 4999;
const ip = 'localhost';

const express = require('express');
const cors = require('cors')
const app = express();

app.use(cors());
app.use(express.json({ strict: false }));
app.use(express.static('client'));


app.get('/', (req, res) => {
  res.send('Hello World!');
})

app.post('/upper', (req, res) => {
  let result = req.body;
  res.json(result.toUpperCase())
})

app.post('/lower', (req, res) => {
  let result = req.body;
  res.json(result.toLowerCase())
})

app.listen(port, () => {
  console.log(`server listening on ${ip}:${port}`);
})

좋은 웹페이지 즐겨찾기