首页 > 解决方案 > EJS:ReferenceError:未定义机器人

问题描述

我想在 Discord.js 和 EJS 中制作一个机器人仪表板。

我有一个错误。

 >> 1| <%- include('blocks/header', {bot, user, path})%>

bot is not defined
    at eval (/app/dashboard/index.ejs:10:43)
    at index (/rbd/pnpm-volume/694e46f9-27bb-4ad9-87e8-c675e51f8f94/node_modules/.registry.npmjs.org/ejs/2.7.4/node_modules/ejs/lib/ejs.js:682:17)
    at tryHandleCache (/rbd/pnpm-volume/694e46f9-27bb-4ad9-87e8-c675e51f8f94/node_modules/.registry.npmjs.org/ejs/2.7.4/node_modules/ejs/lib/ejs.js:254:36)
    at View.exports.renderFile [as engine] (/rbd/pnpm-volume/694e46f9-27bb-4ad9-87e8-c675e51f8f94/node_modules/.registry.npmjs.org/ejs/2.7.4/node_modules/ejs/lib/ejs.js:485:10)
    at View.render (/rbd/pnpm-volume/694e46f9-27bb-4ad9-87e8-c675e51f8f94/node_modules/.registry.npmjs.org/express/4.17.1/node_modules/express/lib/view.js:135:8)
    at tryRender (/rbd/pnpm-volume/694e46f9-27bb-4ad9-87e8-c675e51f8f94/node_modules/.registry.npmjs.org/express/4.17.1/node_modules/express/lib/application.js:640:10)
    at Function.render (/rbd/pnpm-volume/694e46f9-27bb-4ad9-87e8-c675e51f8f94/node_modules/.registry.npmjs.org/express/4.17.1/node_modules/express/lib/application.js:592:3)
    at ServerResponse.render (/rbd/pnpm-volume/694e46f9-27bb-4ad9-87e8-c675e51f8f94/node_modules/.registry.npmjs.org/express/4.17.1/node_modules/express/lib/response.js:1012:7)
    at app.get (/app/util/dashboard.js:45:7)
    at Layer.handle [as handle_request] (/rbd/pnpm-volume/694e46f9-27bb-4ad9-87e8-c675e51f8f94/node_modules/.registry.npmjs.org/express/4.17.1/node_modules/express/lib/router/layer.js:95:5)

但我已经定义了。

 const renderTemplate = (res, req, template, data = {}) => {
    const baseData = {
      bot: client,
      path: req.path,
      user: req.isAuthenticated() ? req.user : null
    };
    res.render(templateDir + path.sep + template, {baseData, data});
  };

我的 index.ejs 文件中有一个包含标签。

<%- include('blocks/header', {bot, user, path})%>

如有任何帮助,谢谢!

标签: node.jsejsdiscord.js

解决方案


解决这个问题的方法是用不同的方式渲染它;

const renderTemplate = (res, req, template, data = {}) => {

 res.render(templateDir + path.sep + template), {
  bot: client,
  path: req.path,
  user: req.isAuthenticated() ? req.user : null
  data: data
 })
};

推荐阅读