常见问题

node 版本太老旧

Node 版本需要>=12.x,建议18.x

mysql8.0 连接认证失败

mysql8.0 默认的认证方式不是账户密码,可以根据修改方式open in new window修改即可

windows 下 vscode 开发报 Expected linebreaks to be 'LF' but found 'CRLF'

解决办法参考open in new window

Linux 下 dev 启动 ENOSPC Error

由于 Linux 默认对读取文件的数量是有限制的,开发模式会监测文件变化,解决方式:

运行命令 echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

开启跨域

现在发现很多开发的同学一遇到跨域的问题,首先就是想着怎么在服务端开启跨域。其实跨域(CORS,Cross-Origin Resource Sharing)是一个安全机制,当Web浏览器尝试执行一个跨域的XMLHttpRequest或Fetch请求时,如果目标服务器没有明确允许源服务器进行这样的请求,那么请求就会被浏览器阻止。

所以非必要是不建议开启跨域的!!!

一般解决跨域有两种方式:

  • 开发的时候可以用代理,比如vite、webpack提供的代理功能;
  • 生产环境可以用如:nginx代理,来使前端和后端的Api接口保持在同一个“域”;

如果有特殊需求要开启跨域,找到configuration.ts文件,打开跨域插件的注释即可:

@Configuration({
  imports: [
    // https://koajs.com/
    koa,
    // 是否开启跨域(注:顺序不能乱放!!!) http://www.midwayjs.org/docs/extensions/cross_domain
    // crossDomain,
    sms,
    {
      component: info,
      enabledEnvironment: ['local'],
    },
  ],
  importConfigs: [join(__dirname, './config')],
})
export class ContainerLifeCycle {
  
}

参考midway 文档open in new window

数据库生成 entity

https://midwayjs.org/docs/tool/typeorm_generatoropen in new window

数据库报 group by 相关错误

建议使用数据库最新版本,并开启 group by

my.cnf

sql_mode 删除 ONLY_FULL_GROUP_BY
Last Updated: