Я учусь кодировать и столкнулся с этой проблемой с Angular 6, которую я не могу решить. Я не могу напечатать данные Node.js. Когда я запускаю файл server.js индивидуально, я могу получить выходные данные. Но когда я пытаюсь получить доступ к серверу Node.js через Angular 6, не могу получить выходные данные.
issue.service.ts
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
@Injectable({
providedIn: 'root'
})
export class IssueService {
uri = 'http://localhost:4000';
constructor(private http: HttpClient) { }
getIssues() {
return this.http.get(`${this.uri}/issues`);
}
getIssueById(id) {
return this.http.get(`${this.uri}/issues/${id}`);
}
addIssue(title, responsible, description, severity) {
const issue = {
title: title,
responsible: responsible,
description: description,
severity: severity
};
return this.http.post(`${this.uri}/issues/add`, issue);
}
updateIssue(id, title, responsible, description, severity, status) {
const issue = {
title: title,
responsible: responsible,
description: description,
severity: severity,
status: status
};
return this.http.post(`${this.uri}/issues/update/${id}`, issue);
}
deleteIssue(id) {
return this.http.get(`${this.uri}/issues/delete/${id}`);
}
}
list.component.ts
import { Component, OnInit } from '@angular/core';
import { IssueService } from '../../issue.service';
@Component({
selector: 'app-list',
templateUrl: './list.component.html',
styleUrls: ['./list.component.css']
})
export class ListComponent implements OnInit {
constructor(private issueService: IssueService) { }
ngOnInit() {
this.issueService.getIssues().subscribe((issues) => {
console.log(issues);
});
}
}
server.js
import express from 'express';
import cors from 'cors';
import bodyParser from 'body-parser';
import mongoose from 'mongoose';
import Issue from './models/Issue';
const app = express();
const router = express.Router();
app.use(cors());
app.use(bodyParser.json());
mongoose.connect('mongodb://localhost:27017/issues');
const connection = mongoose.connection;
connection.once('open', () => {
console.log('MongoDB database connection established successfully!');
});
router.route('/issues').get((req, res) => {
Issue.find((err, issues) => {
if (err)
console.log(err);
else
res.json(issues);
});
});
router.route('/issues/:id').get((req, res) => {
Issue.findById(req.params.id, (err, issue) => {
if (err)
console.log(err);
else
res.json(issue);
});
});
router.route('/issues/add').post((req, res) => {
let issue = new Issue(req.body);
issue.save()
.then(issue => {
res.status(200).json({'issue': 'Added successfully'});
})
.catch(err => {
res.status(400).send('Failed to create new record');
});
});
router.route('/issues/update/:id').post((req, res) => {
Issue.findById(req.params.id, (err, issue) => {
if (!issue)
return next(new Error('Could not load document'));
else {
issue.title = req.body.title;
issue.responsible = req.body.responsible;
issue.description = req.body.description;
issue.severity = req.body.severity;
issue.status = req.body.status;
issue.save().then(issue => {
res.json('Update done');
}).catch(err => {
res.status(400).send('Update failed');
});
}
});
});
router.route('/issues/delete/:id').get((req, res) => {
Issue.findByIdAndRemove({_id: req.params.id}, (err, issue) => {
if (err)
res.json(err);
else
res.json('Remove successfully');
})
})
app.use('/', router);
app.listen(4000, () => console.log('Express server running on port 4000'));
когда я пытался получить доступ к данным Node.js через Angular, я получаю эту ошибку
zone.js: 2969 GET http://localhost:4000/issues 0 ()
Но когда я пытаюсь получить доступ к данным Node.js через сервер, я получаю выходные данные
при выполнении файла server.js на порту 4000
, пожалуйста, помогите мне найти решение.
Заранее спасибо