18910140161

JavaScript-(react+express)服务器上的DOM-返回web页面(SSR)-堆栈溢出

顺晟科技

2022-10-19 14:13:26

68

我在从节点JS呈现HTML时遇到了一个问题。

我正在创建动态HTML(他们目前使用的Reactj概念),但我不知道如何像Reactjs在我的节点js服务器上那样完成它。https://es.reactjs.org/docs/rendering-elements.html

我使用了:

const express = require ('express')
const app = express ()
const port = 3000
// app.use (express.static ("public"))
app.listen (port, () => {
  console.log (`Example app listening at http: // localhost: $ {port}`)
})

我读到过,如果使用app.use(express.static..),它只加载静态文件。

所以我决定添加一个端点,将站点转换为动态的:

const express = require ('express')
const app = express ()
const port = 3000
// app.use (express.static ("public"))
app.listen (port, () => {
  console.log (`Example app listening at http: // localhost: $ {port}`)
})

问题是,我需要将“index.html”传递给纯文本,用DOM读取它,并通过DOM添加或删除元素(文本) 最后返回整个html页面。

const express = require ('express')
const app = express ()
const port = 3000
// app.use (express.static ("public"))
app.listen (port, () => {
  console.log (`Example app listening at http: // localhost: $ {port}`)
})

在Reactj中,它们做了类似的事情。它们注入ReactDom.Render。 它们有:

const express = require ('express')
const app = express ()
const port = 3000
// app.use (express.static ("public"))
app.listen (port, () => {
  console.log (`Example app listening at http: // localhost: $ {port}`)
})

在我的情况下,如何返回整个HTML页面。是否使用我指示的步骤?

编辑:

我必须返回整个目录的文件。(但有些修改了,有些没有) 例如: 我修改了index.html,但它已经关联了css、js、bootstrap... 它必须像“app.use(express.static(”public“));”但是用一些修改过的文件。 简而言之,使用节点js修改文件,然后调用app.use(express.static(“public”));并且该文件被修改。 (类似于React的作用)

const express = require ('express')
const app = express ()
const port = 3000
// app.use (express.static ("public"))
app.listen (port, () => {
  console.log (`Example app listening at http: // localhost: $ {port}`)
})

或者有什么方法可以将代码注入到我的“app”变量中? 一些样式

const express = require ('express')
const app = express ()
const port = 3000
// app.use (express.static ("public"))
app.listen (port, () => {
  console.log (`Example app listening at http: // localhost: $ {port}`)
})

就像React一样?

我不能使用模板(pug、manillar...),因为页面的源代码是在其他地方编写的。

我还读到: https://es.reactjs.org/docs/add-react-to-a-website.html 但是我不知道如何将它与app.use(express.static(“public”))

集成

这就是我要找的。 https://teck-wiki.online/es/react-server-side-rendering.html 但是它不起作用。有什么解决方案可以做到这一点吗?

提前致谢。


顺晟科技:

我不确定是否完全理解您在这里要做什么,但是DOM操作是由浏览器处理的,所以它发生在客户端,而不是服务器端。

在使用express时,可以使用sendFile()将文件发送到浏览器并执行DOM操作。

例如

index.html

const express = require ('express')
const app = express ()
const port = 3000
// app.use (express.static ("public"))
app.listen (port, () => {
  console.log (`Example app listening at http: // localhost: $ {port}`)
})

app.js

const express = require ('express')
const app = express ()
const port = 3000
// app.use (express.static ("public"))
app.listen (port, () => {
  console.log (`Example app listening at http: // localhost: $ {port}`)
})

对不起,我要离开节点JS。使用节点JS的“简单错误”太多。 我花了两个月的时间对节点js进行了“大量关注”。

我必须调用许多库来相互链接,而呈现是手工的,而且会出现无数简单的错误。

我将使用php

PHP使您免于头痛,并解决了我的问题。如果是旧的。但是它的力量太大了。

PHP是目前最好的后端语言。对本论坛上的节点js表示抱歉。但事实伤害了

  • TAG:
相关文章
我们已经准备好了,你呢?
2024我们与您携手共赢,为您的企业形象保驾护航