Skip to content

3.1-issues.md

3.1 开发问题及解决

某些 css 文件不生效

检查文件路径没有问题。把这部分代码拷贝到其他能用的代码中,不生效,检查是类名写错了。

reactstrap 样式不生效

没有引入 bootstrap.min.css 类

请求跨域

前端和后端端口号不一致,目前后端设置允许跨域

app.all("*", function (req, res, next) {
  res.header("Access-Control-Allow-Origin", "*"); // 允许跨域
  res.header("Access-Control-Allow-Headers", "content-type");
  res.header("Access-Control-Allow-Methods", "DELETE,PUT,POST,GET,OPTIONS");
  if (req.method == "OPTIONS") {
    res.sendStatus(200);
  } else {
    next();
  }
});

数据库端口号冲突

默认 mysql 的端口号是 3306 端口,如果本地装有多个 mysql 数据库,例如 docker 内部也跑的一个,可能造成另一个无法正常启动。

实际环境中不可能有两个 mysql 在不同的端口跑。所以可以本地只开发一个项目,或者临时改一下数据库的端口号等。

node 不支持 ES6 语法

运行服务前,需要用 babel 编译成 es5 后才能执行

发送请求时,数据库报错

错误日志

/novel-reader/node_modules/mysql/lib/protocol/Parser.js:437
throw err; // Rethrow non-MySQL errors
Error: Cannot set headers after they are sent to the client at new NodeError (node:internal/errors:393:5)

报错是服务器返回了多个响应,应该返回一个值 res.send(data),然后 return

参考:https://blog.csdn.net/qq_48009509/article/details/121625588

数据库存储小说会不会太长

查阅数据库资料,logntext 字段的长度足够长,存放一个 10MB 的小说也绰绰有余。

执行查询语句时,可以不返回小说详情,先返回小说的标题等信息,这样查询的速度回更快。

静态资源引用路径

静态资源(图片、字体文件)是否需要打包到 JS 中?目前图片已经打包,但是字体图标没有打包,未来图片是否存在无法显示的问题等?

数据库分页查找

如果想加载某个章节的数据,能否从 longtext 字段中返回指定的字符串,不需要一次性返回全部的页面

token 如何在不同页面传参

登录页面验证后,如何在不同页面传参,目前使用 url search 参数传递 token。未来考虑 session 和 单点登录等技术

remove useless dependencies

run depcheck and get

refrence:

更新后发现报错,原因是 eslint 版本升级造成的,需要更新 eslintrc @babel/eslint-parser 依赖

https://stackoverflow.com/questions/70386909/problem-with-babel-eslint-parsing-error-require-of-es-module

自动生成 eslint 配置文件

npm init @eslint/config

参考 https://www.npmjs.com/package/eslint#installation-and-usage