MEAN-stack 应用程序:从 angular2 前端到表达后端的 REST API 调用不起作用。错误:ERR_CONNECTION_REFUSED

最喜欢的

我正在按照本教程构建一个 MEAN 堆栈应用程序:https : //www.youtube.com/watch?v= PFP0oXNNveg&t =3236s

问题:我尝试从我的 angular2 前端到我的快速后端执行 http.get() 请求。它不起作用,我收到错误:ERR_CONNECTION_REFUSED:错误

我的前端在 localhost/4200 上,而我的后端在 localhost/3000 上。我想问题可能是这样,所以我搜索解决方案并尝试了这里描述的所有内容:Angular-CLI 代理到后端不起作用(代理本地主机端口的解决方案),这对我不起作用。我仍然收到错误。

这是我的代码:

带有 API 调用的服务方法

getUsers() { return this.http.get('http://localhost/3000/api/users') .map(res => res.json()); }

服务器.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'具有/afterlocalhost而不是 a 的位置:,因此您将在端口 80 上访问 localhost,这是默认设置。切换到'http://localhost:3000/api/users',有帮助吗?

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章