Node.js (Express) 动态插入元标记错误:未捕获的语法错误:意外的标记 '<'

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

我的 React 网站使用 Express 从后面提供服务,适用于:

app.use(express.static(path.resolve(__dirname, './client/build')));

也就是说,我正在重构后端代码,以便每个路由添加动态元标记并单独提供网站:

app.get('/', async (req, res) => {
  const pathToIndex = path.resolve(__dirname, './client/build', 'index.html');

  try {
    // try dynamically inserting title meta tag
    fs.readFile(pathToIndex, 'utf8', function (err, data) {
      if (err) {
        return console.log(err);
      }
      data = data.replace(/\$OG_TITLE/g, "ABC");
      res.send(data);
    });
  } catch(err) {
    res.sendFile(pathToIndex);
  }
});

上述重构导致以下错误:

这是我的文件夹结构:

知道问题可能是什么吗?

reactjs node.js express create-react-app meta-tags
1个回答
0
投票

尝试以下代码

app.get("/", async (req, res) => {
  const pathToIndex = path.resolve(__dirname, ".", "index.html");

  const fileData = fs.readFileSync(pathToIndex, { encoding: "utf8" });

  // data = fileData.replace(/\$OG_TITLE/g, "ABC");
  data = fileData.replace(/App/g, "ABC");

  console.log(data);

  return res.send(data);
});
© www.soinside.com 2019 - 2024. All rights reserved.