node.js - 如何在 Node Project 中从 Angular 项目中渲染索引
问题描述
我有两个文件夹到一个主要文件夹中,一个文件夹称为前端,有角度项目,另一个称为后端,这个文件夹有一个后端和所有 API。我会像SSR项目一样切换这个项目,可以将角度项目集成到节点项目中,然后当我执行时
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(滚动到底部)。像这样:ng build --watch --output-path dist
您需要将此代码添加到后端。
大概是这样的:
server.use(express.static('../frontend/dist'))
推荐阅读
- javascript - 在数组中添加每 n 个项目
- swiftui - 捕获 SwiftUI 视图主体自身和上下文
- kubernetes - Kubernetes API 服务器按字段过滤 - 在请求时间内
- python - LIKE 子句。在 python 连接器中 mysql
- php - 创建一个抽象类并通过其他类继承
- angular - 如何在服务构造函数中提供数据?
- javascript - 将任意回调函数附加到 dom 元素的最佳方法?
- .net-core - 将 Razor 页面拆分为子项目以使其模块化
- clojure - 在命名空间中找出 `:require` 的名称
- oracle - oracle apex 更新语句(使用选择列表和 text_field 的返回值)