Estoy tratando de crear una aplicación en nextjs y me he topado con algunos problemas. Me gustaría hacer una llamada de consulta dentro de mi getServerSideProps() pero aparece el error:
error - ./node_modules/mysql/lib/protocol/sequences/Query.js:2:0 Module not found: Can't resolve 'fs' Import trace for requested module: ./node_modules/mysql/lib/Connection.js ./node_modules/mysql/index.js ./node_modules/serverless-mysql/index.js ./lib/db.js ./lib/components/admin/_bans.js ./pages/admin/index.jsEsto se resuelve fácilmente si pongo este código dentro de un punto final de API, pero no me gustaría hacerlo. A veces es mejor hacer todo dentro del componente. Pero, ¿por qué obtendría este error? Sé que se debe a algo relacionado con el servidor, pero, de nuevo, getServersideProps(), ¿eso no se ejecuta en el servidor? ¿Me estoy perdiendo algo obvio aquí?
A continuación se muestra mi getServerSideProps()
export async function getServerSideProps(context) { const results = await sql_query(` SELECT * from table `); let result = JSON.parse(JSON.stringify(results))[0]; let posts; return { props: {}, // will be passed to the page component as props } }Como dije, estoy usando el paquete Serverless-mysql. Aquí está mi db.js que maneja mis llamadas de consulta.
import mysql from 'serverless-mysql' export const db = mysql({ config: { host: process.env.MYSQLHOST, database: process.env.DATABASE, user: process.env.USERNAME, password: process.env.PASSWORD, }, }) export async function sql_query(query_string,values = []) { try { const results = await db.query(query_string, values) await db.end() return results } catch (e) { throw Error(e.message) } }