PS C:\Users\admin\Desktop\前端开发\Node.js\day6\code\api_server> node .\2app.js C:\Users\admin\Desktop\前端开发\Node.js\day6\code\api_server\node_modules\express\lib\router\route.js:202 throw new Error(msg); ^ Error: Route.post() requires a callback function but got a [object Undefined] at Route.<computed> [as post] (C:\Users\admin\Desktop\前端开发\Node.js\day6\code\api_server\node_modules\express\lib\router\route.js:202:15) at proto.<computed> [as post] (C:\Users\admin\Desktop\前端开发\Node.js\day6\code\api_server\node_modules\express\lib\router\index.js:510:19) at Object.<anonymous> (C:\Users\admin\Desktop\前端开发\Node.js\day6\code\api_server\router\user.js:17:8) at Module._compile (node:internal/modules/cjs/loader:1159:14) at Module._extensions..js (node:internal/modules/cjs/loader:1213:10) at Module.load (node:internal/modules/cjs/loader:1037:32) at Module._load (node:internal/modules/cjs/loader:878:12) at Module.require (node:internal/modules/cjs/loader:1061:19) at require (node:internal/modules/cjs/helpers:103:18) at Object.<anonymous> (C:\Users\admin\Desktop\前端开发\Node.js\day6\code\api_server\2app.js:9:20) Node.js v18.12.1
时间: 2023-07-06 14:37:19 浏览: 60
这是一个错误提示,看起来你在使用 Express 框架中的路由功能时,使用了一个未定义的回调函数。请检查你的代码,确保在调用 `Route.post()` 方法时传入了正确的回调函数。另外,你使用的是 Node.js v18.12.1 版本,这是一个比较新的版本,可能存在一些不兼容的问题,建议使用稳定版本的 Node.js。
相关问题
C:\Users\admin\Desktop\前端开发\Node.js\day6\code\api_server\node_modules\mysql\lib\protocol\Parser.js:437 throw err; // Rethrow non-MySQL errors ^ Error: secretOrPrivateKey must have a value at module.exports [as sign] (C:\Users\admin\Desktop\前端开发\Node.js\day6\code\api_server\node_modules\jsonwebtoken\sign.js:107:20) at Query.<anonymous> (C:\Users\admin\Desktop\前端开发\Node.js\day6\code\api_server\router_handler\2user.js:49:26) at Query.<anonymous> (C:\Users\admin\Desktop\前端开发\Node.js\day6\code\api_server\node_modules\mysql\lib\Connection.js:526:10) at Query._callback (C:\Users\admin\Desktop\前端开发\Node.js\day6\code\api_server\node_modules\mysql\lib\Connection.js:488:16) at Sequence.end (C:\Users\admin\Desktop\前端开发\Node.js\day6\code\api_server\node_modules\mysql\lib\protocol\sequences\Sequence.js:83:24) at Query._handleFinalResultPacket (C:\Users\admin\Desktop\前端开发\Node.js\day6\code\api_server\node_modules\mysql\lib\protocol\sequences\Query.js:149:8) at Query.EofPacket (C:\Users\admin\Desktop\前端开发\Node.js\day6\code\api_server\node_modules\mysql\lib\protocol\sequences\Query.js:133:8) at Protocol._parsePacket (C:\Users\admin\Desktop\前端开发\Node.js\day6\code\api_server\node_modules\mysql\lib\protocol\Protocol.js:291:23) at Parser._parsePacket (C:\Users\admin\Desktop\前端开发\Node.js\day6\code\api_server\node_modules\mysql\lib\protocol\Parser.js:433:10) at Parser.write (C:\Users\admin\Desktop\前端开发\Node.js\day6\code\api_server\node_modules\mysql\lib\protocol\Parser.js:43:10) Node.js v18.12.1
这个错误是关于使用jsonwebtoken库中sign方法时secretOrPrivateKey未被正确设置,导致出现错误。建议检查代码中对jsonwebtoken库的调用并确保正确设置了secretOrPrivateKey参数。同时,也可以查看API文档以获取更多信息。另外,建议在提问时提供更多背景信息或代码片段以便更好地帮助你解决问题。
C:\Users\admin\Desktop\前端开发\Node.js\day6\code\api_server\2app.js:27 app.use(expressJWT({ secret: config.jwtSecretKey }).unless({ path: [/^\/api/] })) ^ TypeError: expressJWT is not a function at Object.<anonymous> (C:\Users\admin\Desktop\前端开发\Node.js\day6\code\api_server\2app.js:27:9) at Module._compile (node:internal/modules/cjs/loader:1159:14) at Module._extensions..js (node:internal/modules/cjs/loader:1213:10) at Module.load (node:internal/modules/cjs/loader:1037:32) at Module._load (node:internal/modules/cjs/loader:878:12) at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12) at node:internal/main/run_main_module:23:47 Node.js v18.12.1
这是一个 Node.js 的错误,提示 expressJWT 不是一个函数,出现在代码文件 'C:\Users\admin\Desktop\前端开发\Node.js\day6\code\api_server\2app.js' 的第 27 行。这个问题可能是由于您没有正确安装相关的依赖包或者版本不兼容导致的。请检查您的依赖包是否正确安装,您可以尝试更新依赖包版本或者使用其他的 JWT 模块来替代 expressJWT。如果您使用的是旧版本的 Node.js,也可能会导致这个问题。建议升级到最新版本的 Node.js 来解决这个问题。