HTML 不在 Express JS 中呈现服务器端变量主页

问题描述 投票:0回答:1

我将一个数组从我的客户端 Javascript 传递到我的服务器 js 并且它有效。现在,我试图将此数组从服务器 js 传递到 HTML,但它不起作用。所以我的服务器 js 成功传递了变量(它在我的浏览器的网络选项卡中可见)但是我的浏览器源代码没有显示它的值并且它是空白的。

这是我如何从后端将它传递给 html:


var express = require('express');
var router = express.Router();
var bodyParser = require('body-parser');
router.use(bodyParser.json());

router.post('/result', function(req, res, next) {
  console.log('filter route hit!');
  var myArray = req.body.all_filter_value;
  console.log(myArray);
  //res.render('layout', { test: myArray });
  res.status(200).render('layout', {test: 'Simple Text'});
});

module.exports = router;

我从客户端 JS 获取“myArray”,实际上我想将其传递给 HTML,但只是为了测试我传递的是“简单文本”。这是我在这种情况下使用哈巴狗的 html 中接收它的方式:

doctype html
html
  head

    link(href='/stylesheets/styles.css' rel='stylesheet')
    meta(name='viewport' content='width=device-width, initial-scale=1')
    title Home Page
  body
    .result_window
      h1 Here is the result!
      h1= test
    .Header

所以我可以看到“这是结果!”在浏览器中,但不是“测试”中的值。

这是我浏览器源代码的一个片段,“测试”是空白的。

/stylesheets/styles.css" rel="stylesheet">主页

这是电影!

我错过了什么?

我尝试使用不同的格式在 HTML 中打印“test”的值,但都没有用。到目前为止,这是我尝试过的:

  1. h1 <%= test %> //按原样打印

  2. h1 { test } //按原样打印

  3. h1 {{ test }} //按原样打印

  4. h1= test //什么都不打印

  5. h1= {test} //打印[object Object]

html node.js express rendering pug
1个回答
0
投票

你有没有告诉 express.js 你正在使用渲染引擎,

你需要通过在你的 server.js 中指定它来告诉 express.js 哪个渲染引擎给你

我将使用 ejs 作为我的渲染引擎



const express = require('express');
const app = express();
const PORT = 3000;
 
// View engine setup

app.set('view engine', 'ejs');

这里有一篇文章参考https://www.geeksforgeeks.org/express-js-res-render-function/amp/

© www.soinside.com 2019 - 2024. All rights reserved.