Hi,
I am in Fullstack Path and currently working on back end e-commerce project. My project is based on other participant who has pubished his completed project. Furthermore, I do not just copy and paste for my project, but developed it to my own project. I have not finished it yet and I am perplexed where is the bug as I got the following error notification:
‘’’
C:\Users\nikol\OneDrive\Desktop\e-commerce\node_modules\express\lib\router\route.js:211
throw new Error(msg);
^
Error: Route.post() requires a callback function but got a [object Undefined]
at Route. [as post] (C:\Users\nikol\OneDrive\Desktop\e-commerce\node_modules\express\lib\router\route.js:211:15)
at proto. [as post] (C:\Users\nikol\OneDrive\Desktop\e-commerce\node_modules\express\lib\router\index.js:521:19)
at Object. (C:\Users\nikol\OneDrive\Desktop\e-commerce\routes\index.js:13:20)
at Module._compile (node:internal/modules/cjs/loader:1254:14)
at Module._extensions…js (node:internal/modules/cjs/loader:1308:10)
at Module.load (node:internal/modules/cjs/loader:1117:32)
at Module._load (node:internal/modules/cjs/loader:958:12)
at Module.require (node:internal/modules/cjs/loader:1141:19)
at require (node:internal/modules/cjs/helpers:110:18)
at Object. (C:\Users\nikol\OneDrive\Desktop\e-commerce\server.js:12:70)
Node.js v18.16.0
‘’’
I had checked the internet and according to their solution, I have tried to find the mistake , but to np avail. My project can be seen on: GitHub - BiruSkai/e-commerce. I would appreciate any of your assistance.
Best,
1 Like
The error hints at what you should be thinking about
Error: Route.post() requires a callback function but got a [object Undefined]
and for the eagle-eyed it happens on line 13 at index.js (you don’t need to look at the source code, the error gives you this).
So that means when you call
registerUserRouter.post('/', registerUser);
the interpreter is expecting a callback function (as its second argument) but instead it gets an undefined object.
From here I leave it to you to figure out. You might say gee, i’m pretty sure registerUser is a callback function, then you have to consider what the state of it by that point.
- did you import it correctly?
- does it have some sort of async (any use of async/away, then() etc), in that case you can only call it when it is delivered and deal with that.
I highly highly higly highly recommend you use a debugger when working.
You can do something like
let x = 5;
debugger;
x += 2;
and then call your script and debug
node inspect your-script.js
For example
$ node inspect test.js
< Debugger listening on ws://127.0.0.1:9229/b19016b8-68e1-472e-a238-babb8c9e8c84
< For help, see: https://nodejs.org/en/docs/inspector
< Debugger attached.
Break on start in test.js:1
> 1 var thisIsAVar = 5;
2 debugger;
3 const someVar = () => {
debug> n
break in test.js:2
1 var thisIsAVar = 5;
> 2 debugger;
3 const someVar = () => {
4 basicThing();
debug> exec console.log(thisIsAVar);
< 5
1 Like
Hi,
Thanks for the response. The error notification disappeared after adding curly braces on export statement.
Before:
module.exports = registerUser;
After solution:
module.exports = {registerUser}