很多人都面临这个问题,但 StackOverFlow 上没有答案。请有人解答一下
我开始在 NextJS 中构建一个应用程序,遵循一些教程将应用程序连接到 mySql,但无论我做什么,我总是在控制台中出现错误。当我导入 serverless-mysql 包时,就会出现此错误。 找不到模块:无法解析“net”、“tls”和“fs”
这是位于/pages/文件夹中的index.js文件中的代码。
import Head from 'next/head'
import Image from 'next/image'
import styles from '../styles/Home.module.css'
import dynamic from 'next/dynamic'
import mysql from 'serverless-mysql'
export default function Home() {
return (
"The Default Boilerplate HTML Code goes here, it was too long hence not posting it
这是位于 /pages/ 文件夹中的 data.js 文件中的代码
import mysql from 'serverless-mysql';
const db = mysql({
config: {
host: process.env.MYSQL_HOST,
port: process.env.MYSQL_PORT,
database: process.env.MYSQL_DATABASE,
user: process.env.MYSQL_USER,
password: process.env.MYSQL_PASSWORD
}
});
export default async function excuteQuery({ query, values }) {
try {
const results = await db.query(query, values);
await db.end();
return results;
} catch (error) {
return { error };
}
}
我的nextjs.config文件代码
/** @type {import('next').NextConfig} */
const nextConfig = {
reactStrictMode: true,
env: {
'MYSQL_HOST': '127.0.0.1',
'MYSQL_PORT': '3306',
'MYSQL_DATABASE': 'nearcal',
'MYSQL_USER': 'root',
'MYSQL_PASSWORD': '',
}
}
module.exports = nextConfig
我不知道为什么 React 被夸大了,做一件简单的事情却如此复杂。 LAMP 堆栈提供了完整的解决方案。 MERN真的很乱
不确定是否对您有帮助。就我而言,我使用 next.js 14.2.3 应用程序路由器和 mysqljs/mysql。我发现问题是我在异步函数中使用了 mysql,而函数顶部没有
'use server'
行,并且是从客户端组件调用的。在函数顶部添加'use server'
后,问题消失了。 Mysql 似乎可以在服务器操作或路由处理程序中工作。