решение ошибки «Неожиданный токен <в JSON в позиции 0 в JSON.parse» - PullRequest
0 голосов
/ 23 декабря 2018

Я развернул свое угловое приложение 6 в Heroku (https://angulardictionary.herokuapp.com/).

Но я получаю ошибку SyntaxError: Неожиданный токен <в JSON в позиции 0 в JSON.parse. </p>

Iпонять, что означает эта ошибка: ответ возвращает html вместо JSON. Мой вопрос: как я могу это исправить?

Я пытался:

res.send (объект)

res.json (объект)

Вот мой код:

server.js

app.get('*', function(req,res) {
res.sendFile(path.join(__dirname +'/dist/frontend/index.html'));
});

app.get('/api/words', function(req, res){
 fs.readFile('newWords.xml', 'utf-8', function (err, data){
  if(err){
    console.log('error');
    //res.send(err);
  } else{
    parser.parseString(data, function (err, result) {
    let words = result['entry']['form'];
    res.setHeader('Content-Type', 'application/json');
    res.send(JSON.stringify(words));

web.service.ts:

getWords(name: string, option: any):Observable<Word[]>{

return this.http.get<Word[]>('/api/words',{
  params: {
    name:name,
    option:option
  }
}
);

}

и я вызываю эту функцию в: home.component.ts:

getWordList(){
    this.webservice.getWords(this.spelling, this.selected)
        .subscribe((res: Array<Word>)=> {
        this.elements = res.filter(d=> d.orth == this.spelling || d.asuddimIsem
        == this.spelling);


    }
}

Кажется, что все вызовы http идут напрямую по маршруту по умолчанию (app.get ('*)', function (req, res)), пропуск (app.get (' / api / words ')).

1 Ответ

0 голосов
/ 23 декабря 2018

It seems as if all the http calls go directly to the default route (app.get('*', function(req,res)), skipping (app.get('/api/words')). Это правильно.Порядок, в котором определяются маршруты, имеет значение.Вы должны наконец поставить маршрутный знак *.Что касается другого API, вам, возможно, не понадобится зашифровать JSON.stringify() ответ, вы можете просто сделать res.send(words).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...