MEAN-stack app: REST API calls from angular2 frontend to express backend do not work. Error: ERR_CONNECTION_REFUSED
MEAN-stack app: REST API calls from angular2 frontend to express backend do not work. Error: ERR_CONNECTION_REFUSED
我正在按照本教程构建一个 MEAN 堆栈应用程序:https://www.youtube.com/watch?v=PFP0oXNNveg&t=3236s
问题:我尝试从我的 angular2 前端向我的 express 后端发出 http.get() 请求。它不起作用,我得到错误:ERR_CONNECTION_REFUSED:
The Error
我的前端在 localhost/4200 上,我的后端在 localhost/3000 上。我认为问题可能在于此,所以我搜索解决方案并尝试了此处描述的所有内容:(代理本地主机端口的解决方案),这对我不起作用。我仍然收到错误。
这是我的代码:
服务方法与API调用
getUsers() {
return this.http.get('http://localhost/3000/api/users')
.map(res => res.json());
}
server.js
var express = require('express');
var path = require('path');
var bodyParser = require('body-parser');
var start = require('./routes/start');
var registration = require('./routes/registration');
var port = 3000;
var app = express();
//View Engine
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');
app.engine('html', require('ejs').renderFile);
//Set Static Folder
app.use(express.static(path.join(__dirname, 'client')));
app.use(express.static(path.join(__dirname, 'client', 'dist')));
//Body Parser MW
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: false}));
app.use('/', start);
app.use('/api', registration);
app.listen(port, () =>{
console.log('Server started on port '+port);
});
我尝试在 API 通话中使用的路线
//get all the user
router.get('/users', function(req, res, next){
db.users.find(function(err, usrs){
if(err){
res.send(err);
}
res.json(usrs);
});
});
//get single user
router.get('/user/:id', function(req, res, next) {
db.users.findOne({_id: mongojs.ObjectId(req.params.id)}, function(err, usr){
if(err){
res.send(err);
}
res.json(usr);
});
});
//save a new user
router.post('/user', function(req, res, next) {
var user = req.body;
if(!user.name || !user.password){
res.status(400);
res.json({
"error": "Bad Data"
});
} else {
db.users.save(user, function(err, user) {
if(err){
res.send(err);
}
res.json(user);
});
}
});
module.exports = router;
我猜是因为你想去 'http://localhost/3000/api/users'
,它在 localhost
之后有一个 /
而不是 :
,所以你要去到端口 80 上的本地主机,这是默认设置。切换到 'http://localhost:3000/api/users'
,有帮助吗?
我正在按照本教程构建一个 MEAN 堆栈应用程序:https://www.youtube.com/watch?v=PFP0oXNNveg&t=3236s
问题:我尝试从我的 angular2 前端向我的 express 后端发出 http.get() 请求。它不起作用,我得到错误:ERR_CONNECTION_REFUSED: The Error
我的前端在 localhost/4200 上,我的后端在 localhost/3000 上。我认为问题可能在于此,所以我搜索解决方案并尝试了此处描述的所有内容:
这是我的代码:
服务方法与API调用
getUsers() {
return this.http.get('http://localhost/3000/api/users')
.map(res => res.json());
}
server.js
var express = require('express');
var path = require('path');
var bodyParser = require('body-parser');
var start = require('./routes/start');
var registration = require('./routes/registration');
var port = 3000;
var app = express();
//View Engine
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');
app.engine('html', require('ejs').renderFile);
//Set Static Folder
app.use(express.static(path.join(__dirname, 'client')));
app.use(express.static(path.join(__dirname, 'client', 'dist')));
//Body Parser MW
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: false}));
app.use('/', start);
app.use('/api', registration);
app.listen(port, () =>{
console.log('Server started on port '+port);
});
我尝试在 API 通话中使用的路线
//get all the user
router.get('/users', function(req, res, next){
db.users.find(function(err, usrs){
if(err){
res.send(err);
}
res.json(usrs);
});
});
//get single user
router.get('/user/:id', function(req, res, next) {
db.users.findOne({_id: mongojs.ObjectId(req.params.id)}, function(err, usr){
if(err){
res.send(err);
}
res.json(usr);
});
});
//save a new user
router.post('/user', function(req, res, next) {
var user = req.body;
if(!user.name || !user.password){
res.status(400);
res.json({
"error": "Bad Data"
});
} else {
db.users.save(user, function(err, user) {
if(err){
res.send(err);
}
res.json(user);
});
}
});
module.exports = router;
我猜是因为你想去 'http://localhost/3000/api/users'
,它在 localhost
之后有一个 /
而不是 :
,所以你要去到端口 80 上的本地主机,这是默认设置。切换到 'http://localhost:3000/api/users'
,有帮助吗?