Javascript 如何将字符串化对象发送到html正文

Javascript 如何将字符串化对象发送到html正文,javascript,html,node.js,json,express,Javascript,Html,Node.js,Json,Express,我使用res.write()方法向客户端发送一个html文件。我还想发送一个附加到此html的对象。 我试图将该对象字符串化,并像编写html文件一样编写它,但当我这样做时,字符串化的json对象仍在html之外。我需要json对象位于html中,这样我就可以用客户端js文件解析它 我该如何解决这个问题 我试图将其作为一个Json对象发送。但是我无法通过html获得它 app.get('/uniform', (req,res) => { fs.readFile('uniformflow

我使用
res.write()
方法向客户端发送一个
html
文件。我还想发送一个附加到此
html
对象。
我试图将该对象
字符串化,并像编写
html
文件一样编写它,但当我这样做时,字符串化的
json对象仍在
html
之外。我需要json对象位于
html
中,这样我就可以用客户端js文件解析它

我该如何解决这个问题

我试图将其作为一个
Json对象
发送。但是我无法通过
html
获得它

app.get('/uniform', (req,res) => {
  fs.readFile('uniformflowindex.html', function(err, data) {
    var channelobj = JSON.stringify(channel);
    res.write(data);
    res.write("<div id='objectstring'>" + channelobj + "</div>");
    res.end('');
  });
});
app.get('/uniform',(req,res)=>{
readFile('uniformflowindex.html',函数(err,data){
var channelobj=JSON.stringify(通道);
res.write(数据);
res.write(“+channelobj+”);
res.end(“”);
});
});
它给出了输出:

<html>

...
my html file
...

</html>

<div id='objectstring'>{"_events":{},"_eventsCount":0,"Discharge":20,"FlowDepth":5.......}</div>

...
我的html文件
...
{U事件:{},{U事件:0,“排放”:20,“流动深度”:5……}
我只想把这个
div
放在
html
文件中。

html文件:

<html>

...
{ content }
...

</html>

...
{content}
...
您的代码:

app.get('/uniform', (req,res) => {
  fs.readFile('uniformflowindex.html', function(err, data) {
    var channelobj = JSON.stringify(channel);
    data = data.replace('{ content }', "<div id='objectstring'>" + channelobj + "</div>");
    res.end(data);
   })
});
app.get('/uniform',(req,res)=>{
readFile('uniformflowindex.html',函数(err,data){
var channelobj=JSON.stringify(通道);
data=data.replace({content},“”+channelobj+“”);
res.end(数据);
})
});

您可以在html代码中使用通配符,然后用div内容替换该通配符

例如:

<html>

...
my html file
...

[[wildcard]]

</html>

...
我的html文件
...
[[通配符]]
然后使用:

app.get('/uniform', (req,res) => {
fs.readFile('uniformflowindex.html', function(err, data) {
var channelobj = JSON.stringify(channel);
res.write(data.replace('[[wildcard]]', "<div id='objectstring'>" + channelobj + "</div>"));
res.end();
})
});
app.get('/uniform',(req,res)=>{
readFile('uniformflowindex.html',函数(err,data){
var channelobj=JSON.stringify(通道);
res.write(data.replace(“[[wildcard]]”,“+channelobj+”);
res.end();
})
});
或者,您也可以不在html中添加通配符,只使用内容+结束标记本身替换一个结束标记,如

app.get('/uniform', (req,res) => {
fs.readFile('uniformflowindex.html', function(err, data) {
var channelobj = JSON.stringify(channel);
res.write(data.replace('</body>', "<div id='objectstring'>" + channelobj + "</div></body>"));
res.end();
})
});
app.get('/uniform',(req,res)=>{
readFile('uniformflowindex.html',函数(err,data){
var channelobj=JSON.stringify(通道);
res.write(data.replace(“”,“+channelobj+”);
res.end();
})
});

谢谢您的意见。这很有道理。但是NodeJS不使用data.replace方法编译。它需要一些npm吗?(TypeError:data.replace不是一个函数)如果其他人遇到这个问题,上面的答案就完美了。只需将data.replace更改为data.toString().replace。