获取错误消息 n 不是函数
Posted
技术标签:
【中文标题】获取错误消息 n 不是函数【英文标题】:Getting an error message n is not a function 【发布时间】:2021-12-16 05:42:26 【问题描述】:当我点击 /:uid 端点时,我正在编写一个无服务器 netlify 函数,它向我显示此错误消息 n is not a function
但当我点击 / 端点时,它不会引发错误。
请帮我解决这个问题。
src/api.js 文件代码
const express = require("express");
const cors = require("cors");
const fetch = require("node-fetch");
const helmet = require("helmet");
const serverless = require("serverless-http");
if (process.env.NODE_ENV !== "production")
require("dotenv").config();
const app = express();
const router = express.Router();
app.use(cors());
app.use(helmet());
const fetchWithToken = (endpoint, method = "GET") =>
return fetch(`$process.env.API_BASE_URL$endpoint`,
method,
headers:
Authorization: `token $process.env.TOKEN`,
,
);
;
router.get("/", (req, res) =>
res.send("JDKJKFJ");
);
router.get("/:uid", async (req, res) =>
try
const data = await fetchWithToken(`/$req.params.uid`, "GET");
res.status(200).json(data);
catch (error)
console.log(error.message);
res.status(500).json( error );
);
app.use("/.netlify/functions/api", router);
module.exports.handler = serverless(app);
错误信息
TypeError: n is not a function
at /Users/rishipurwar/codingspace-proxy-server/functions/api.js:159:3133
at /Users/rishipurwar/codingspace-proxy-server/functions/api.js:159:3232
at o.handle_request (/Users/rishipurwar/codingspace-proxy-server/functions/api.js:120:783)
at o (/Users/rishipurwar/codingspace-proxy-server/functions/api.js:113:879)
at d.dispatch (/Users/rishipurwar/codingspace-proxy-server/functions/api.js:113:901)
at o.handle_request (/Users/rishipurwar/codingspace-proxy-server/functions/api.js:120:783)
at /Users/rishipurwar/codingspace-proxy-server/functions/api.js:106:2533
at f (/Users/rishipurwar/codingspace-proxy-server/functions/api.js:106:3502)
at f (/Users/rishipurwar/codingspace-proxy-server/functions/api.js:106:3696)
at Function.v.process_params (/Users/rishipurwar/codingspace-proxy-server/functions/api.js:106:3839)
at g (/Users/rishipurwar/codingspace-proxy-server/functions/api.js:106:2476)
at Function.v.handle (/Users/rishipurwar/codingspace-proxy-server/functions/api.js:106:3340)
at p (/Users/rishipurwar/codingspace-proxy-server/functions/api.js:106:238)
at o.handle_request (/Users/rishipurwar/codingspace-proxy-server/functions/api.js:120:783)
at /Users/rishipurwar/codingspace-proxy-server/functions/api.js:106:2905
at /Users/rishipurwar/codingspace-proxy-server/functions/api.js:106:2927
Response with status 500 in 57 ms.
【问题讨论】:
你能分享堆栈跟踪吗? 你好,这里是回购链接:github.com/rishipurwar1/codingspace-proxy-server 我不知道什么是堆栈跟踪 你能发布完整的错误信息吗? 刚刚添加了错误信息,请检查 【参考方案1】:您需要将.json()
添加到fetch返回的值中:
try
let data = await fetchWithToken(`/$req.params.uid`, "GET");
data = await data.json()
res.status(200).json(data);
catch (error)
console.log(error.message);
res.status(500).json( error );
【讨论】:
仍然收到同样的错误信息 我不知道为什么我也无法访问 api.js 文件中的 env @RishiPurwar 我刚刚检查了你的仓库,我看到你正在使用 netlify-lambda 来运行你的程序。我认为解决方案是改变您使用环境变量的方式,您可以查看此Github issue answer 的详细指南 你能写出正确的答案吗?以便将来对某人有所帮助 如果我直接使用值而不是使用环境变量。仍然,它向我显示了一个错误。以上是关于获取错误消息 n 不是函数的主要内容,如果未能解决你的问题,请参考以下文章
从 mongoDB 和 Nodejs 获取数据:toArray 不是函数错误 [重复]
AJAX:当函数调用失败/错误时,是不是可以从服务器端返回自定义错误消息? [复制]
等待消息中的消息反应等待反应,错误(message.react 不是函数)