繁体   English   中英

尝试代理时出错:localhost:4200/api/v1/generate_uid

[英]Error occured while trying to proxy to: localhost:4200/api/v1/generate_uid

我正在按照教程 ( https://levelup.gitconnected.com/simple-application-with-angular-6-node.js-express-2873304fff0f ) 使用 Angula CLI、Node.js 和 Express 创建应用程序。 我使用代理启动应用程序,定义代理的文件如下所示:

{
  "/api/*": {
    "target": "http://localhost:3000",
    "secure": false,
    "logLevel": "debug",
    "changeOrigin": true
  }
}

我用来启动应用程序的命令是这个:

ng serve --proxy-config proxy.conf.json

教程说:

All requests made to /api/... from within our application will be forwarded to http://localhost:3000/api/...

老实说,我真的不知道它应该如何工作,因为当我启动应用程序时,我仍然使用 URL:http://localhost:4200/。

但是直到现在我才遇到问题。 我刚刚在端点 /api/v1/generate_uid 使用 Express.js 创建了一条路由。

但问题是当我 go 到 http://localhost:4200/api/v1/generate_uid 它显示此消息:

Error occured while trying to proxy to: localhost:4200/api/v1/generate_uid .

以下是我在控制台中收到的消息:

[HPM] 尝试将请求 /api/v1/generate_uid 从 localhost:4200 代理到 http://localhost:3000 (ECONNREFUSED) 时发生错误 ( https://nodejs.org/api/errors.html#errors_common_system_errors )

当我 go 到 http://localhost:3000 时,它总是说连接失败。

如需进一步参考,以下是我的快递 API 的app.js和定义路线的generate_uid.js

应用程序.js

var express = require('express');
var uid = require('uid-safe');

var router = express.Router();

router.get('/', function(req, res, next) {
    var strUid = uid.sync(18);
    res.json({guid: strUid});
});

module.exports = router;

生成_uid.js

var express = require('express');
var path = require('path');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');

var users = require('./routes/users');
var generate_uid = require('./routes/generate_uid');

var app = express();

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser())

app.use('/api/v1/users', users);
app.use('/api/v1/generate_uid', generate_uid);

module.exports = app;

所以我真的不知道解决方案是什么。 提前感谢您的回答!

正如评论中所说, app似乎没有.listen()函数,这对于绑定到端口非常重要。

app.listen(3000, () => {
  console.log("Server started in port 3000!");
});
    {
   "/api": {
      "target": "http://localhost:3000",
      "secure": false,
      "changeOrigin": true,
      "logLevel": "info"
   },
   "pathRewrite": {
      "^/api": ""
   }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM