首页 > 解决方案 > 如何在 Node Project 中从 Angular 项目中渲染索引

问题描述

我有两个文件夹到一个主要文件夹中,一个文件夹称为前端,有角度项目,另一个称为后端,这个文件夹有一个后端和所有 API。我会像SSR项目一样切换这个项目,可以将角度项目集成到节点项目中,然后当我执行时

npm run dev

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

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

服务器 index.js

项目结构项目

如果我这样做

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

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

出现这个错误

错误 res.render

但是,如果我这样做

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

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

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

空白页

服务器固件代码

固件

服务器应用程序 index.js 主体

索引服务器应用

标签: node.jsangularexpressserver-side-rendering

解决方案


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

如果你想做 SSR,那么你需要使用Angular Universal之类的东西

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

您需要将此代码添加到后端。

大概是这样的:

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

推荐阅读