如何在 Node 项目中渲染来自 Angular 项目的索引

How to render index from Angular project in Node Project

我有两个文件夹放到一个principal文件夹里,一个叫frontend,有angular项目,另一个叫backend,这个文件夹有backend和所有API。我会像SSR项目一样切换这个项目,可以将angular项目集成到一个节点项目中,然后当我执行

npm run dev

并且节点项目在各自的端口上启动,前端端自动在其中启动。

我尝试了多种方法来创建从一个文件夹到另一个文件夹的路径,但没有成功。

如果我这样做

const indexTest = (path.join(__dirname, `../frontend/src/index.html`))

server.get('/', (req, res) => {
    res.render(indexTest)
})

出现这个错误

但是,如果我那样做

const indexTest = (path.join(__dirname, `../frontend/src/index.html`))

server.get('/', (req, res) => {
    res.sendFile(indexTest)
})

不显示任何错误,但主页面是空白的

服务器固件代码

服务器应用index.js主体

您正在尝试根据源代码呈现前端,但这行不通。 在 Angular 个项目中,您需要先构建代码,然后再渲染它。

如果你想做SSR,那么你需要使用类似Angular Universal

的东西

另一种选择是将后端指向 dist 文件夹,然后 运行 angular cli in watch mode(滚动到底部)。像这样:ng build --watch --output-path dist

您需要将 this code 添加到您的后端。

大概是这样的:

server.use(express.static('../frontend/dist'))