首页 > 解决方案 > 如何修复我的应用程序中最近出现的 node.js 错误?

问题描述

const express = require("express");
const path = require("path");
var hbs = require("express-handlebars");
const morgan = require("morgan");

const middlewares = require("./middlewares/middlewares");

const PORT = process.env.PORT || 3002;
var app = express();
// setup static file service
app.use(express.static(path.join(__dirname, "static")));
//Setup app port
app.set("port", process.env.PORT || PORT);
// setup handlebars and the view engine for res.render calls
app.set("view engine", "html");
app.engine(
  "html",
  hbs({
    extname: "html",
    defaultView: "default",
    layoutsDir: __dirname + "/views/layouts/",
    partialsDir: __dirname + "/views/partials/"
  })
);

app.get("/", (req, res) => {
  res.send("Hello world");
});

app.use(morgan("common"));
app.use(middlewares.errorHandler);
app.use(middlewares.ignoreFavicon);
app.use(middlewares.notFound);

var server = app.listen(app.get("port"), () =>
  console.log(`Server started...Listening on port: ${PORT}`)
);

这是我的基本服务器设置。每当我请求路由时,我的控制台中都会出现以下错误。我也必须添加中间件而忽略这条路线。“获取 /favicon.ico HTTP/1.1”

未捕获的类型错误:无法在 S.Object.isExtensible.Object.isExtensible.e.___hb.e.___hb 处的 Contentscript.bundle.js:72 处的 Function.keys () 处将未定义或 null 转换为对象(contentscript.bundle.js:29 )

[Honeybadger] 无法发送错误报告:未配置 API 密钥。

标签: node.jsexpressconsole

解决方案


有更多的堆栈跟踪吗?另外,当您说“控制台”时,您是指在节点控制台中还是在浏览器控制台中?看起来日志消息来自我们的客户端 JavaScript 包,我希望它出现在浏览器中。如果您在 Node 应用程序中发现错误,您应该使用我们的Node.js 包

在 honeybadger.js 中,___hb有时会出现在堆栈跟踪中,因为该函数已被我们的库包装,但错误通常仍在您的项目代码中。如果您尝试诊断生产中的错误,我建议您使用 API 密钥配置 Honeybadger。

相关文档:


推荐阅读