尝试代理时出错:localhost:4200/api/v1/generate_uid
Error occured while trying to proxy to: localhost:4200/api/v1/generate_uid
我正在学习使用 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 时,它总是说连接失败。
为了进一步参考,这里是我的快递 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!");
});
我正在学习使用 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 时,它总是说连接失败。
为了进一步参考,这里是我的快递 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!");
});