Я развернул свое угловое приложение 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 ')).