Search code examples
javascriptnode.jsreactjspassport.jses6-modules

issues importing function in node/js


Hey I am having troubles importing the function "generateToken"

import jwt from "jsonwebtoken";

function generateToken(user) {
  // Generate and return jwt token
  const token = jwt.sign(({ user }), "secretKey", { expiresIn: "1h" });
  return token;
}

export { generateToken };

Here is my import import { generateToken } from "../../server/jwtUtils.js"

When I do this I get this error enter image description here

I have tried exporting the functions like this

module.exports = { generateToken
 }

And like this => Export default generateToken

When I do this I get this error => enter image description here

I actually don't know if this is an issue with my passport.js or node. Would appreciate any help!


Solution

  • You can simply do:

    import jwt from "jsonwebtoken";
    
    export function generateToken(user) {
      // Generate and return jwt token
      const token = jwt.sign(({ user }), "secretKey", { expiresIn: "1h" });
      return token;
    };
    

    Then:

    import {generateToken} from "./server/jwtUtils.js"; //< This needs to be a relative path to your file
    const token = generateToken(user);
    

    However, export { generateToken }; is perfectly valid syntax in ES6 modules but typically done this way when exporting a list of things.

    The module.exports = { generateToken } is CommonJS syntax and will not work with ES6 modules.