【问题标题】:Discord Oauth2 for GitHub Pages?GitHub页面的不和谐Oauth2?
【发布时间】:2022-01-20 19:55:34
【问题描述】:
var express = require('express')()
const app = express();
var port = {
  'client_id': '…',
  'client_secret': '…',
  'grant_type': 'authorization_code',
  'redirect_uri': '…',
}

app.get('/', (request, response) => {
  return response.sendFile('index.html', { root: '.' });
});

app.listen(port, () => console.log(`App listening at http://localhost:${port}`));
console.log('1')

如何将 Discord Oauth2 用于 GitHub 页面?它说 require 没有定义。甚至在本地主机上,它说我必须将字符串包装在require('express') 中的数组中。然后,它说app.get 不是函数。

在这一切之后,我如何请求检索登录者的服务器?

【问题讨论】:

  • 嗯... GitHub 页面是静态的。不允许服务器端。
  • 另外,不是require("express")(),是require("express")
  • @MrMythical 实际上,不完全是 - const app = require('express')() 相当于做类似const express = require('express'); const app = express(); 的事情,后者是您在官方文档中看到的内容。两者的工作方式相同。

标签: javascript discord discord.js require


【解决方案1】:

GitHub Pages 是 静态托管 托管服务,而 Express 是 服务器端 框架服务器。

GitHub Pages 是一种静态网站托管服务,它直接从 GitHub 上的存储库中获取 HTML、CSS 和 JavaScript 文件,可选择通过构建过程运行文件,然后发布网站。 p>

Source

这意味着您不能将 Express 与 GitHub Pages 一起使用。但是,有一些解决方法和替代方法。

解决方法:在客户端加载内容

如果您想坚持使用 GitHub Pages,这是推荐的路线。您将获得一个静态骨架页面,并在客户端使用 JavaScript 填写字段。

此方法有多种方法,但是,这取决于您如何处理身份验证。

替代方案:使用其他托管服务

我假设您使用的是 GitHub Pages,因为它是一项免费的托管服务,但问题是它只是静态的。

VercelNetlify 都有一个名为 serverless functions 的东西。使用无服务器功能,每次有人向您的网站发出请求时,都会启动一个新的计算实例。这里有一些关于如何实现 Express 的官方指南:

祝你的项目好运!

【讨论】:

  • 这一次,又出现了一个错误:app.get is not a function 我试过require(['express']) 并在后面选择性地添加了(),但它也不起作用。
  • @John 你用的是什么方法?客户端渲染,还是使用 Vercel 或 Netlify?
  • Vercel。谢谢!
  • 它是require('express'),没有[]s。并确保您在代码底部导出了应用程序,module.exports = app。如需更多说明,请参阅guide
  • 哦,另外,您应该使用以下任一代码。不是都。 const express = require('express'); const app = express();const app = require('express')();
猜你喜欢
  • 2021-01-27
  • 2021-10-23
  • 2021-02-14
  • 2021-01-10
  • 1970-01-01
  • 2017-11-12
  • 2021-08-11
  • 2019-07-11
  • 2021-12-13
相关资源
最近更新 更多