Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 平均应用程序。两台服务器同时运行Express、NodeJS和Angular 2_Javascript_Node.js_Angular_Express_Mean Stack - Fatal编程技术网

Javascript 平均应用程序。两台服务器同时运行Express、NodeJS和Angular 2

Javascript 平均应用程序。两台服务器同时运行Express、NodeJS和Angular 2,javascript,node.js,angular,express,mean-stack,Javascript,Node.js,Angular,Express,Mean Stack,我尝试将后端(NodeJS,Express)与前端(angular2)连接起来,但遇到了一个问题 当我分别启动两台服务器时,客户端和服务器端都可以正常工作。 在我的情况下: 本地主机:4200-角度 本地主机:3000-NodeJS,Express 当我在视图文件夹中呈现任何静态html文件时,它都能正常工作,但当我将html文件的内容更改为Angular Index.html(使用组件)时,它就不工作了。我的意思是,它工作,但不加载我的组件 我想问题出在配置中,我的index.html不知道如

我尝试将后端(NodeJS,Express)与前端(angular2)连接起来,但遇到了一个问题

当我分别启动两台服务器时,客户端和服务器端都可以正常工作。 在我的情况下: 本地主机:4200-角度 本地主机:3000-NodeJS,Express

当我在视图文件夹中呈现任何静态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);
});
var express = require('express');
var router = express.Router();

router.get('/', function(req, res, next) {
    res.render('index.html');
});

module.exports = router;
在ROUTES文件夹中,我的index.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);
});
var express = require('express');
var router = express.Router();

router.get('/', function(req, res, next) {
    res.render('index.html');
});

module.exports = router;
我的文件夹结构:

ruen app
是我的客户端(Angular 2)文件夹

因此,我的问题是:

  • 如何连接这两个部分
  • 同时启动两台服务器正确吗?一台用于前端,另一台用于后端
  • 从零开始应用程序的最佳实践是什么?我的意思是,最好的方式是什么-两台服务器还是一台

  • 花了3天,但找到了解决办法。 在stackoverflow上: