egg.js +PostgreSQL 撸的一个小程序后端项目
发布于 3 个月前 作者 padipata 2171 次浏览 最后一次编辑是 2 个月前 来自 分享

背景

本人刚接触node不久,学习直接跳过了express(不知是否会根基不稳。。。), 上来就撸 koa2,后来接触到 egg.js ,有阿里的实践,中大型的项目应该也完全hold得住,文档算是比较健全,项目写下来也是比较顺畅,功能基本够用,该有的都有,后面可能要使用到 grpc 不知道 egg 是否有集成,有待实践。。。

项目介绍

这个项目是一个小程序后端项目,用于学习作用 项目地址

更新时间 更新内容 更新说明
2018-07-23 添加egg-validate 参数规则校验
2018-07-23 添加egg-sequelize 数据库操作
2018-07-23 添加egg-cors 解决浏览器跨域
2018-07-23 添加jsonwebtoken 生成 token
2018-07-23 添加中间件 auth.js 校验用户身份
2018-07-23 添加crypto加密 crypto.createHash(‘md5’).update(pwd).digest(‘hex’);
2018-07-23 小程序授权 封装微信授权校验

目前发现问题:

  • 为什么配置了 egg-cors 没起作用? // 前端还是报跨域
// config.default.js
config.cors = {
        origin: '*',
        allowMethods: 'GET,HEAD,PUT,POST,DELETE,PATCH',
};

只能在Nginx上面加上跨域配置

add_header 'Content-Security-Policy' "upgrade-insecure-requests";
add_header 'Access-Control-Allow-Origin' "*";
add_header 'Access-Control-Allow-Headers' "Origin, X-Requested-With, Content-Type, Accept, Authorization, X-Access-Token";
add_header 'Access-Control-Allow-Credentials' 'true';
add_header 'Access-Control-Allow-Methods' 'GET,POST,HEAD,OPTIONS, PUT, DELETE';

结语

国内前端优秀的 node.js 框架还有很多,但 egg.js 算是其中非常优秀的,至少文档让我整体看来很舒服。等多做几个大型的项目实践后再具体评论了。

还望大佬多多指点代码不足之处,多多改进 ~~~

26 回复

收藏了 先下载看看 egg还是很不错的

@gogogosns 嗯嗯,刚接触不久,还不是很清楚自己的写法是否规范

nest.js 有 Grpc 的集成 https://docs.nestjs.cn/5.0/microservices?id=grpc 如果你更喜欢 Typescript 的话

眼花了,怎么看成GraphQL了 😂😂

koa2学习中,学学再来看egg

@zuohuadong Typescript也在用,之后观察一下吧

@openkeyer egg学习起来挺平缓的

@szy0syz 不瞒你说,我第一眼也是

那个设置跨域的问题我是设置的白名单,在config/config.dev.js 里设置的security.domainWhiteList ,你可以试一下看可不可以。 还有感觉引了好多插件啊,看的一脸懵逼 😳

@Helovebai 嗯嗯,我得仔细看一下cors的文档了😂

@atian25 大神,用户检验部分不知写得是否符合规范?(middleware/auto.js)😳

@padipata 没啥问题吧,好像之前有看到有 egg-jwt 插件。

路由那里,也可以考虑用 https://github.com/eggjs/egg-router-plus

@atian25 有使用 egg-router-plus 了呀,不知道用法是否正确。 From Noder

plus 不是支持 load app/router/**/*.js 么,你怎么还自己 require

@atian25 我去改进一下,多谢指导 From Noder

案例一个自己的小库 , npm install pg-cli ^_^

@padipata egg 的基础覆盖面很广,该有的基本都有,grpc 也有。 https://github.com/eggjs/awesome-egg

config.cors = {
    origin: () => '*',
  };

@atian25 使用 egg-jwt 跟直接使用 jsonwebtoken 没什么区别,依然要自己写 sign 和 verify

瞄了一眼代码,发现 egg-validate 并没有用起来啊

@littledu 不太确定,不是我们这边维护的

@littledu 是的,因为要调试点东西就去掉了,后面再补上吧。 From Noder

回到顶部