Tengo un archivo mecanografiado que exporta una función para enviar correos electrónicos usando aws ses
//ses.tsx let sendEmail = (args: sendmailParamsType) => { let params = { //here I get the params from args, then I send the email }; return AWS_SES.sendEmail(params).promise(); }; module.exports = { sendEmail };luego, en otro lugar, tengo una página de punto final de la API next.js que importa el módulo de esta manera
//index.tsx import {sendEmail} from "../../../lib/ses";la ruta es correcta pero el editor (phpstorm) resalta esa línea de arriba en rojo y el mensaje de error es
declares 'sendEmail' locally, but it is not exported.La ruta es correcta y, como puede ver, el módulo se exporta. Cuando ejecuto la página no me sale ningún error pero no se envía el correo.
Además, uso el mismo módulo desde otro punto final y funciona. ¿Alguna sugerencia para resolver o depurar esto?
Estás mezclando ES con CommonJS.
module.exports se usa con require() //CommonJS Syntax
export se usa con import //Sintaxis ES.
puedes exportar todos los objetos a la vez
O puede simplemente exportar el objeto directamente.
Correo.tsx:
export const sendEmail = () => {}principal.tsx
import {sendEmail} from "./Mail";También recomiendo usar const en lugar de let para funciones.
export default ...también funciona, pero se puede usar una vez por archivo y se puede importar con
import Mail from "./Mail.tsx"; Mail.sendEmail(...);