部署Angular App时Express(节点)中的语法错误:未捕获SyntaxError:意外令牌<

时间:2019-01-22 12:00:57

标签: javascript node.js angular express

因此,我构建了一个有角度的应用程序,当我完成ng build --prod时,它成功完成了 没有错误没有警告完全没有。

我计划将所有构建过程中生成的文件复制到Node Express服务器中的views/目录中,就像下面的

--server
---server.js
---views/
----index.html
----main.000000000.js
----runtime.000000.js
----styles.000000.css
----icon_000000.png
----etc (all generated files from `ng build --prod`)

我放在server.js里面的是一个简单的应用程序,如下所示:

const express = require('express');
const cors = require('cors');
const morgan = require('morgan');
const bodyParser = require('body-parser');
const path = require('path');

const app = express();

app.use(cors());
app.use(morgan('dev'));
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());

// Routes
app.use(express.static(path.join(__dirname, 'views/')));
app.get('*', (req, res) => {
    return res.sendFile(path.join(__dirname, `views/index.html`));
});

const port = process.env.PORT || 3001;
app.listen(port);

console.log('Server has started on port ' + port);

当我点击localhost:3001/时,会出现{strong>许多错误,该错误基本上意味着当浏览器请求这些(某些)静态文件时,它将得到响应Uncaught SyntaxError: Unexpected token <,而不是相关的静态文件。

我如何使用以下代码进行修复:

index.html

但是上述解决方案很脏,就像我们必须对const express = require('express'); const cors = require('cors'); const morgan = require('morgan'); const bodyParser = require('body-parser'); const path = require('path'); const app = express(); app.use(cors()); app.use(morgan('dev')); app.use(bodyParser.urlencoded({ extended: false })); app.use(bodyParser.json()); const allowed = [ '.js', '.css', '.png', '.jpg', '.gif', '.ico', '.svg', '.woff', '.eot', '.ttf', ]; app.get('*', (req, res) => { if (allowed.filter(ext => req.url.indexOf(ext) > 0).length > 0) { res.sendFile(path.resolve(`views/${req.url}`)); } else { res.sendFile(path.join(__dirname, 'views/index.html')); } }); const port = process.env.PORT || 3001; app.listen(port); console.log('Server has started on port ' + port); 内的每个非.html静态文件进行硬编码一样,我在这里需要另一个解决方案,如何在不对每个静态文件进行硬编码的情况下解决这个问题延期?在角度/dist期间我做错什么了吗?

谢谢

0 个答案:

没有答案