javascript - 尝试代理到 : localhost:4200/api/v1/generate_uid 时发生错误

标签 javascript node.js angularjs express

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

{
  "/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 创建了一条路由。

但问题是当我访问 http://localhost:4200/api/v1/generate_uid 时它会显示以下消息:

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

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

[HPM] Error occurred while trying to proxy request /api/v1/generate_uid from localhost:4200 to http://localhost:3000 (ECONNREFUSED) (https://nodejs.org/api/errors.html#errors_common_system_errors)

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

为了进一步引用,这里是我的express API的app.js和定义路由的generate_uid.js:

app.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;

generate_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() 函数,该函数对于绑定(bind)到端口非常重要。

app.listen(3000, () => {
  console.log("Server started in port 3000!");
});

关于javascript - 尝试代理到 : localhost:4200/api/v1/generate_uid 时发生错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64646545/

相关文章:

javascript - YouTube 在身份验证时要求选择 channel

node.js - 访问 Mocha 中的 Meteor 设置

node.js - 无法使用 NodeJs 连接到 Realm 对象服务器

html - Bootstrap : Set table column width for small devices

javascript - Angular bootstrap日历月 View 打开弹出问题

php - 仅使用一个php文件的php mysql多因素查询

javascript - jQuery - 动态添加/删除表单部分的最佳方法

javascript - AngularJS 链接函数的顺序不正确

node.js - Node.js 上 MongoDB 连接的最佳实践是什么?

javascript - $http put v create - 每个(JavaScript)中从 .success() 返回的数据对象之间有什么区别