Проблема чтения базового JSON из бэкэнда express.js в приложение front.js - PullRequest
0 голосов
/ 15 апреля 2019

Я создаю базовое приложение реагирования, которое получает данные из серверной службы express.js, подключенной к базе данных Azure.

В прошлом я создал бэкэнд-сервисы express.js, и он всегда работал хорошо, но на этот раз React не читает строку json должным образом.

Express.js код

var sql = require('mssql');

var sqlConfig = {
user: 'xxxx',
password: 'xxxx',
server: 'xxx.database.windows.net',    // don't add tcp & port number
database: 'xxx',
options: {
  encrypt: true
} 
}; 


router.get('/foglamps', function(req, res, next) {


(async function () {
  try {
    console.log("sql connecting......")
    let pool = await sql.connect(sqlConfig)
    let result = await pool.request()
      .query("GetFogLamps")  // subject is my database table name


  console.log("Fog Lamps: " + result.recordset[0].fogLampCount)

  /* Send data back to user requesting */
  //
  res.setHeader('Content-Type', 'application/json');
  res.json({fogLampCount: result.recordset[0].fogLampCount});

  res.send();

  sql.close();

} catch (err) {
  console.log(err);
}
})()

Реагировать

Я могу просмотреть возвращенный JSON в веб-браузере и почтальоне, и он выглядит так:

{ "fogLampCount": 12960}

Я получаю следующую ошибку: Необработанный отказ (SyntaxError): неожиданный токен <в JSON в позиции 0 </p>

Если я заменю выборку на известный API, который работает, он работает нормально.

Любая помощь приветствуется. Благодаря.

class Dashboard extends Component {
  constructor(){ 
    super();
    this.state = {
      data: null,
      chartData:{},
      fogLampsOrdered: 120000,
      fogLampsPending: 500000,
       fogLampsCompleted: 48000,
      defectedFogLamps: 150,
      ordersCompleted: 50,
      fogLampCount: 0,
      rawData: 0,   



    }
  }

  componentWillMount(){
    this.getChartData();



}

componentDidMount() {

//fetch('https://secure.toronto.ca/cc_sr_v1/data/swm_waste_wizard_APR?limit=1000')
fetch('/users/foglamps')

//Complete promise to receive body text as JSON object
.then(res => res.json())

//Add JSON object to rawData array in state
.then(rawData => this.setState({rawData}));


};
...