如何使用Winston/NextJS和API路由进行日志记录?

kokeuurv  于 2023-08-04  发布在  其他
关注(0)|答案(1)|浏览(144)

我的要求很简单,但由于我是Next.js等现代JS框架的新手,我可以使用一些指导。
我的目标是记录用户在我的网站上采取的特定关键操作。为了实现这一点,我已经创建了一个logger.js文件,在其中使用Winston配置了我的logger对象。此外,我还实现了一个API函数来将内容记录到一个文件中,它的功能与预期的一样。
然而,我在从JS UI文件调用这个方法时遇到了一个问题。目前,当我使用router.push调用API时,网站会重定向到API页面。我想找到一种方法来调用日志API,而不触发重定向,允许网站继续进行下一步。
如果有人有这方面的经验或知道一个更好/正确的方法来完成这一点,我将非常感谢您的见解。

  • 谢谢-谢谢
nfs0ujit

nfs0ujit1#

router.push()仅用于客户端导航,而不是API调用。
要调用API,需要使用fetch函数,如下所示

const res = fetch('/api/your-route', {
   method: 'POST', // change based on your request type.
   body: JSON.stringify(data) // if you have data to pass
}

字符串
现在,在/api/your-route/文件夹中,创建一个名为route.js的新文件,并将您的API逻辑传输到这里,如下所示:

export async function POST(req) {
  const data = await req.json() // to receive data
 // TODO: your API logic
 // note the name of the function must be the same as your method passed in
 // the fetch request that was made from the client side.
}

相关问题