问题标签 [next-connect]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
127 浏览

typescript - 没有重载匹配此调用。使用`next-connect`和`next-iron-session`时出现TypeScript错误

我有一个使用next-connect&的项目next-iron-session

next-connect默认使用<NextApiRequest, NextApiResponse>& 我使用<NextIronRequest, NextApiResponse>where

但我无法通过<NextIronRequest, NextApiResponse>喜欢nc

这应该可以解决我的问题,但它给了我错误:

预期 0 类型参数,但得到 2.ts(2558)

我的handler()函数出现过载错误,例如:

我在每种方法上都收到 2 个错误,说:

没有重载匹配此调用。重载 1 of 2,'(...handlers: RequestHandler[]): NextConnect',给出了以下错误。'string' 类型的参数不能分配给'RequestHandler' 类型的参数。Overload 2 of 2, '(pattern: string | RegExp, ...handlers: RequestHandler[]): NextConnect',给出了以下错误。'(req: NextIronRequest, res: NextApiResponse) => Promise' 类型的参数不可分配给 'RequestHandler' 类型的参数。参数“req”和“req”的类型不兼容。类型“NextApiRequest”不可分配给类型“NextIronRequest”。“NextApiRequest”类型中缺少属性“会话”,但在“AppSession”类型中是必需的。ts(2769)

没有重载匹配此调用。重载 1 of 2,'(...handlers: RequestHandler[]): NextConnect',给出了以下错误。'string' 类型的参数不能分配给'RequestHandler' 类型的参数。Overload 2 of 2, '(pattern: string | RegExp, ...handlers: RequestHandler[]): NextConnect',给出了以下错误。'(req: NextIronRequest, res: NextApiResponse) => Promise' 类型的参数不可分配给 'RequestHandler' 类型的参数。参数“req”和“req”的类型不兼容。类型“NextApiRequest”不可分配给类型“NextIronRequest”。类型“NextApiRequest”不可分配给类型“AppSession”.ts(2769)

我该如何解决?

我的完整复制在这里→ https://github.com/deadcoder0904/twitter-api-v2-3-legged-login-using-next-connect

0 投票
1 回答
185 浏览

node.js - TypeError:解析器不是`next-connect`中的函数

我有一个使用next-connect&的项目twitter-api-v2

我有一个handler调用 2get条路线,例如:

handler看起来如下:

我认为我做得next-connect对,但是当我尝试在客户端执行简单操作时为什么会出现错误,fetch例如:

后端给出以下错误:

我做了一个完整的复制→ https://github.com/deadcoder0904/twitter-api-v2-3-legged-login-using-next-connect

我想要做的就是使用twitter-api-v2. 步骤在https://github.com/PLhery/node-twitter-api-v2/blob/master/doc/auth.md上给出

我该如何解决这个问题?

0 投票
1 回答
139 浏览

node.js - 请求的资源上不存在“Access-Control-Allow-Origin”标头。使用 next-connect 时出现 Next.js CORS 错误

我正在尝试cors在 Next.js 中使用next-connect. 但是,我无法使其工作。

这是我的cors代码:

FWIW,我已经尝试过 StackOverflow 上提到的所有其他解决方案,例如https://stackoverflow.com/a/35317615/6141587

我也尝试过安装cors&之类的软件包,nextjs-cors但遇到了同样的错误:

访问从源“http”获取“https://api.twitter.com/oauth/authorize?oauth_token=xxxxxxxxxxxx”(重定向自“http://localhost:3000/api/twitter/generate-auth-link”) ://localhost:3000' 已被 CORS 策略阻止:请求的资源上不存在“Access-Control-Allow-Origin”标头。如果不透明的响应满足您的需求,请将请求的模式设置为“no-cors”以获取禁用 CORS 的资源。

我在这里有一个 Github 复制品 → https://github.com/deadcoder0904/twitter-api-v2-3-legged-login-using-next-connect(请参阅cors的最新提交)

我检查了网络的选项卡,但没有看到那里设置标题。我也添加了console.log('cors'),但它没有打印在那里。

server/api-route.ts我猜根本没有调用中间件文件。

我需要那个文件是中间件。我该如何解决?

0 投票
1 回答
678 浏览

reactjs - Next.js 路由与子路由的“next-connect”

在我的项目中,我使用包Next.js创建了一个类似快递的route->middleware->endpoint模式。next-connect

我有这个路线模式:

在我的pages/api/tours/index.js文件中,我添加了一条路由来捕获 api/tours 和所有其他子路由,例如 api/tours/top-5-cheap。根据文档,这应该有效。但是只有 api/tours 可以正常工作,对 api/tours/subroute 的任何请求都会给出一个page not found error.Docs: next-connect

我希望能够从pages/api/index.js文件中捕获对 api/tours 和 api/tours/subroute 的所有请求,而不是为每个子路由创建一个文件 欢迎提出任何建议或帮助

0 投票
1 回答
116 浏览

javascript - 在下一个连接中链接中间件失败并出现错误处理程序

我有以下两个中间件功能:

我尝试在下一个连接设置中使用它们,pages/api我在其中定义了 onError 和 onNoMatch 选项:

问题:

只有第一个中间件执行(在服务器控制台上打印 'header OK!')。validateEmail 中的控制台从不打印。当我在下一个连接选项中定义的 onError 处理程序中控制台错误时,它看起来像请求对象,即。它包含带有电子邮件有效负载的正文。

调用路由会导致 500:返回内部服务器错误(在 onError 处理程序中定义)。

这个设置有什么问题?

使用的版本:

“下一个”:“11.1.2” “下一个连接”:“0.10.2”

0 投票
1 回答
60 浏览

node.js - Next Connect with-passport-and-next-connect and mongoose: req.user is undefined

我正在使用 Next.js 并成功添加了 passport.js,从而在成功登录后让用户返回。\0/

但是我想要的是req.user可用于我的api/user路由...

在中间件/auth.js 中的这个示例仓库中

use.()它在下面的函数中提到...

Initialize mocked database 添加自己的数据库后删除它

这是我的api/user路线:

我的理由是 repo 也有一个钩子,它调用/api/user路由来查看req.user 是否存在......

根据 repo 的内容,您应该能够通过在文件中设置数据库来获取req.usermiddleware/auth ,您将如何执行此操作并因此在api/user路由中获取它?

0 投票
1 回答
78 浏览

node.js - 尝试使用 next-connect 在 Next.js 中从 http://localhost:3000 重定向到 https://api.twitter.com 时出现 CORS 错误?

我正在努力redirect工作,但总是被控制台中的错误轰炸:

访问 'https://api.twitter.com/oauth/authenticate?oauth_token='(重定向自 'http://localhost:3000/api/auth/twitter/generate-auth-link')从 origin 获取http://localhost:3000' 已被 CORS 策略阻止:请求的资源上不存在“Access-Control-Allow-Origin”标头。如果不透明的响应满足您的需求,请将请求的模式设置为“no-cors”以获取禁用 CORS 的资源。

我确实在同一个问题上看到了其他答案,事实上,我刚刚发现我在 2 个月前问了同​​样的问题,但是这个问题适用于打开一个弹出窗口并在那里进行重定向,这个人想要重定向同一页面本身。

我也尝试了相同的答案,但它不起作用并且它仍然给我这个代码的cors错误:

我也尝试使用此代码:

但这也不起作用。

我的 oauth 流程是这样的:

点击登录 http://localhost:3000 → 转到https://api.twitter.com/oauth/authenticate?oauth_token=xxxx → 重定向回 http://localhost:3000

相同 oauth 流程的代码如下所示:

api/auth/twitter/generate-auth-link.ts

api/auth/twitter/get-verifier-token.ts

如何解决 cors 问题,以便重定向正常工作?

当我使用next-auth时,它可以工作,但无法从它的代码中找出它发生的位置。但我想要完全相同的流程。点击Login& 它被重定向到 Twitter API & 当它被验证时,被重定向回localhost.

0 投票
0 回答
7 浏览

next-connect - 如何在响应中设置 cookie,然后重定向?

我是新手next-connect,我一直在这个问题上停留了一段时间,我真的希望你能帮助我。

我正在尝试在我的应用程序中实现 Twitter 身份验证,并且在该过程结束时,我的用户登陆了我的一个 api url,在那里我拥有与身份验证相关的所有数据。我的目标是将生成的身份验证令牌保存到 cookie 中,然后将用户重定向回我的应用程序,如下所示:

但这不起作用,它给了我一个TypeError: res.cookie is not a function.

你能帮我弄清楚如何解决这个问题吗?

0 投票
1 回答
19 浏览

reactjs - 如何在开发过程中使用 next-connect 和主机代理?

我使用 restinio 作为我的后端 API 服务器。以前我使用 ReactJS 作为前端,并使用 package.json 中的 "proxy": "http://localhost:4000" 解决了这个代理问题,如此处所述;https://create-react-app.dev/docs/proxying-api-requests-in-development/

现在我正在使用 Next.js,我可以直接使用 fetch 函数从后端获取数据,但如果可能的话,我想使用 next-connect,因为这个模块有许多功能可以简化我当前项目的编码。

我尝试了几种方法,例如使用 rewrites 模块重写路径;

但仍然无法解决问题。我应该怎么做?

谢谢你。

0 投票
0 回答
85 浏览

reactjs - 使用 SWR 从内部 API 路由获取客户端数据

我正在尝试获取我在 Next.js 应用程序中获取到 API 路由的数据,但它不起作用。

这是我获取数据的 API 路由上的代码:

这就是我在 console.log 中得到的:

在此处输入图像描述

现在,当我尝试使用 SWR 在客户端获取这些数据时,如下所示:

我明白了undefined

我在这里做错了什么?如何获取我在/api/job路线上获得的数据对象?