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。