Javascript 尝试调用API端点时,Next不是函数 Type错误:NeXT不是函数< /C> >我使用膝关节炎>代码> KoaStime/Coo> >对我的API进行模块化。我有两个文件
Javascript 尝试调用API端点时,Next不是函数 Type错误:NeXT不是函数< /C> >我使用膝关节炎>代码> KoaStime/Coo> >对我的API进行模块化。我有两个文件,javascript,node.js,api,koa,Javascript,Node.js,Api,Koa,App.js: const Koa = require('koa') const cors = require('@koa/cors') const mount = require('koa-mount') const logger = require('koa-logger') const bodyParser = require('body-parser') const price = require('./routes/price') const margin = require('./r
App.js
:
const Koa = require('koa')
const cors = require('@koa/cors')
const mount = require('koa-mount')
const logger = require('koa-logger')
const bodyParser = require('body-parser')
const price = require('./routes/price')
const margin = require('./routes/margin')
const position = require('./routes/position')
const main = async () => {
const app = new Koa()
// Parse incoming requests data
app.use(bodyParser())
app.use(logger())
app.use(cors({
credentials: true
}))
app.use(async (ctx, next) => {
try {
await next()
} catch (err) {
ctx.status = err.status || 500
ctx.body = err.message
ctx.app.emit('error', err, ctx)
}
})
app.use(mount('/position', await position()))
app.use(mount('/price', await price()))
app.use(mount('/margin', await margin()))
return app
}
if (require.main === module) {
main().then(
(app) => app.listen(3000), console.log(`Listening On Port ${3000}`)
)
}
&包含端点的文件
// Import the WebFramework for routing
const Koa = require('koa')
const route = require('koa-route')
const bitmexAPI = require('../keys')
module.exports = async () => {
const app = new Koa()
app.use(route.get('/open', async (ctx) => {
//Get Positions
console.log("yes")
const position = await bitmexAPI.Position.get()
console.log(res)
// //Response
ctx.status = 200
ctx.body = {
tx: res.json({ success: true, data: position})
}
}))
return app
}
它是一个超级简单的API。我正在使用postman
来测试这一点,但它返回了一个内部服务器错误,控制台给出了以下信息:
TypeError: next is not a function
at urlencodedParser (/Users/lrodriguez/Desktop/Personal/BitmexTracker/node_modules/body-parser/lib/types/urlencoded.js:91:7)
at /Users/lrodriguez/Desktop/Personal/BitmexTracker/node_modules/body-parser/index.js:111:7
at jsonParser (/Users/lrodriguez/Desktop/Personal/BitmexTracker/node_modules/body-parser/lib/types/json.js:110:7)
at bodyParser (/Users/lrodriguez/Desktop/Personal/BitmexTracker/node_modules/body-parser/index.js:109:5)
at dispatch (/Users/lrodriguez/Desktop/Personal/BitmexTracker/backend/node_modules/koa-compose/index.js:42:32)
at /Users/lrodriguez/Desktop/Personal/BitmexTracker/backend/node_modules/koa-compose/index.js:34:12
at Application.handleRequest (/Users/lrodriguez/Desktop/Personal/BitmexTracker/backend/node_modules/koa/lib/application.js:151:12)
at Server.handleRequest (/Users/lrodriguez/Desktop/Personal/BitmexTracker/backend/node_modules/koa/lib/application.js:133:19)
at Server.emit (events.js:189:13)
at parserOnIncoming (_http_server.js:676:12)
我认为您使用的是Express的
主体解析器
,应该改用我认为您使用的是Express的主体解析器
,应该改用