如何解决尝试代理到以下主机时发生错误: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创建了一条路由。
但是问题是当我转到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)
时发生错误
当我访问http:// localhost:3000时,总是说连接失败。
有关更多参考,以下是我的快速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()
函数,这对于绑定到端口非常重要。
app.listen(3000,() => {
console.log("Server started in port 3000!");
});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。