如何向 module.exports 路由中的长格式 return 请求添加参数?
How do I add parameters to long-form return requests in module.exports routes?
我正在为一个 API 连接区域编码,它主要是 graphql 但需要为某些事情建立一些 REST 连接,并且等效于以下代码:
foo.js
module.exports = {
routes: () => {
return [
{
method: 'GET',
path: '/existing_endpoint',
handler: module.exports.existing_endpoint
},
{
method: 'POST',
path: '/new_endpoint',
handler: module.exports.new_endpoint // <--- this not passing variables
}
]
},
existing_endpoint: async () => {
/* endpoint that isn't the concern of this */
},
new_endpoint: async (req, res) => {
console.log({req, res})
return 1
}
}
现有的 GET 端点工作正常,但我的 POST 端点总是在 {}
的控制台出错,其中 {req, res} 应该由路由器传入,我怀疑是因为POST 没有收到。我试过将路由中的 POST 声明更改为 module.exports.new_endpoint(req, res),但它告诉我未找到变量,而导入 server.js 确实有文件(它看起来更像这样......),并用 server.js 做类似的事情,也得到类似的结果,暗示这也可能是错误的。另外,我们有一个非常严格的 eslint 设置,所以我不能真正改变调用的格式。
我在网上看到的每个使用这些库的例子都是一些简短的形式,或者在路由调用中包含函数,而不是像这样的长形式。我该如何做这种格式的 POST?
/* hapi, environment variables, apollog server, log engine, etc. */
/* preceeding library inclusions */
const foo = require('./routes/foo')
const other_route = require('./routes/other_route')
const startServer = async () => {
const server = Hapi.server({port, host})
server.route(other_route.routes())
server.route(foo.routes())
}
这是节点 v16 中 Hapi 的错误。 I just opened an issue.
您当前的解决方案是:
- 升级到 Hapi v20
- 使用n 或其他方法将此项目降级到节点 v14.16。我可以确认
POST
请求不会在此版本中挂起。
我正在为一个 API 连接区域编码,它主要是 graphql 但需要为某些事情建立一些 REST 连接,并且等效于以下代码:
foo.js
module.exports = {
routes: () => {
return [
{
method: 'GET',
path: '/existing_endpoint',
handler: module.exports.existing_endpoint
},
{
method: 'POST',
path: '/new_endpoint',
handler: module.exports.new_endpoint // <--- this not passing variables
}
]
},
existing_endpoint: async () => {
/* endpoint that isn't the concern of this */
},
new_endpoint: async (req, res) => {
console.log({req, res})
return 1
}
}
现有的 GET 端点工作正常,但我的 POST 端点总是在 {}
的控制台出错,其中 {req, res} 应该由路由器传入,我怀疑是因为POST 没有收到。我试过将路由中的 POST 声明更改为 module.exports.new_endpoint(req, res),但它告诉我未找到变量,而导入 server.js 确实有文件(它看起来更像这样......),并用 server.js 做类似的事情,也得到类似的结果,暗示这也可能是错误的。另外,我们有一个非常严格的 eslint 设置,所以我不能真正改变调用的格式。
我在网上看到的每个使用这些库的例子都是一些简短的形式,或者在路由调用中包含函数,而不是像这样的长形式。我该如何做这种格式的 POST?
/* hapi, environment variables, apollog server, log engine, etc. */
/* preceeding library inclusions */
const foo = require('./routes/foo')
const other_route = require('./routes/other_route')
const startServer = async () => {
const server = Hapi.server({port, host})
server.route(other_route.routes())
server.route(foo.routes())
}
这是节点 v16 中 Hapi 的错误。 I just opened an issue.
您当前的解决方案是:
- 升级到 Hapi v20
- 使用n 或其他方法将此项目降级到节点 v14.16。我可以确认
POST
请求不会在此版本中挂起。