我尝试将后端(NodeJS,Express)与前端(Angular 2)连接,但是有问题。
当我单独启动两个服务器时,客户端和服务器端都可以正常工作。 在我的情况下: localhost:4200 - Angular localhost:3000 - NodeJS,Express
当我在VIEWS文件夹中渲染任何静态html文件时,它可以正常工作,但是当我将html文件的内容更改为使用组件的Angular Index.html时,它不起作用。我的意思是,它可以工作,但不会加载我的组件。
我认为问题出在配置中,而我的index.html不知道如何查找和加载组件,但我不确切地知道错误的位置。
当我尝试在同一端口启动两台服务器时,我的前端部分停止工作。
我使用Angular-CLI,NodeJS,Express和EJS。
我的server.js代码是:
var express = require('express');
var path = require('path');
var bodyParser = require('body-parser');
var index = require('./routes/index');
var tasks = require('./routes/tasks');
var port = 3000;
var app = express();
app.set('views', path.join(__dirname, 'views'));
app.set('view enjine', 'ejs');
app.engine('html', require('ejs').renderFile);
app.use(express.static(path.join(__dirname, 'views')));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false}));
app.use('/', index);
app.use('/api', tasks);
app.listen(port, function () {
console.log('Server started on port ' + port);
});
在ROUTES文件夹中,我的index.js代码是:
var express = require('express');
var router = express.Router();
router.get('/', function(req, res, next) {
res.render('index.html');
});
module.exports = router;
我的文件夹结构: Picture of foldes
node_modules
routes
ruen-app
views
package.json
server.js
“ruen-app”是我的客户端(Angular 2)文件夹。
所以,我的问题是:
1)如何连接这两个部分?
2)同时启动两台服务器是正确的 - 一台用于前端,另一台用于后端?
3)MEAN应用程序从头开始的最佳实践是什么?我的意思是,最好的方法是什么 - 两个服务器还是一个?
答案 0 :(得分:3)
花了3天时间,但找到了解决方案。 在stackoverflow上:
Different ports for frontend and backend. How to make a request?