簡體   English   中英

使用EJS將數據從Node js傳遞到HTML

[英]Passing data from Node js to HTML using EJS

這是我的服務器端代碼:

app.set('view engine', 'html');
app.engine('html', require('ejs').renderFile);
app.use(express.static('views'));
app.use(bodyParser.urlencoded({extended:true}));
app.use(bodyParser.json());

app.get('/',function(req,res){
    var title = "PERFORMANCE OVERVIEW";
    res.render('Main.html',{name:title});
})

這是我的客戶端代碼(Main.html):

<div class="row">
    <div class="sm-col-12">
    <h3 contenteditable="true" style="font-family:BentonSans Medium; text-align:center; color:rgb(0,38,99);"><%= name %></h3>                    
    <hr style="border-top: dotted 2px;color:grey" />
    </div>
</div>

我在Main.html頁面上獲得的輸出是“<% - name%>”。 相反,它應該打印“性能概述”。 這段代碼究竟出了什么問題?

編輯:

我忘了提到我還嘗試了其他變種,如<%= name%> and {{ name }} 但我分別得到輸出"<%= name%>" and "{{ name }}"

將其更改為<%= name %>應該修復它。

如果沒有,您可以嘗試將app.set('view engine', 'html')更改為app.set('view engine', 'ejs'); ,然后刪除以下2行。

app.set('view engine', 'ejs');
app.use(bodyParser.urlencoded({extended:true}));
app.use(bodyParser.json());

app.get('/',function(req,res){
    var title = "PERFORMANCE OVERVIEW" ;
    res.render('Main',{name:title}) ;
});

我總是用這種方式編寫它,所以我不能肯定地說你的語法是否正確,或者如果沒有像這樣設置ejs甚至可以工作。

更新

確保Main.html文件位於名為views的文件夾中,並將此文件重命名為Main.ejs

下一次更改res.render('Main.html',{name:title}); res.render('main',{name:title});

<%- Outputs the unescaped value into the template
<%= Outputs the value into the template (HTML escaped)

在您打算打印值時,請使用<%=標記,以便將<%- name%>更改為<%= name%>

這些信息可以在這里找到 - https://ejs.co/#docs

在Main.html中將<% - name%>更改為<%= name%>

const express = require('express');
const bodyParser = require('body-parser');

const port = 5000;

const app = express();

app.set('view engine', 'html');
app.engine('html', require('ejs').renderFile);
app.use(express.static('views'));
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());

app.get('/', function (req, res) {
  var title = "PERFORMANCE OVERVIEW";
  res.render('Main.html', { name: title });
});

app.listen(port, console.log(`Server is running on port ${port}`))

試試這個,它呈現HTML頁面,並訪問你傳遞的變量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM