首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

挑选 npm 模块很费事?掌握这些技巧就能事半功倍!

熟悉 Node 或前端 JavaScript 工作同学都知道,社区中可用模块有数十万之多。...Joi: 你需要验证输入并且喜欢它下面这种样式时就用它 复制代码 const schema = joi.object().keys({  id: joi.string().guid().required...异步 Async(库): 你需要使用只支持回调,不支持 Promise 旧版 Node 时选它 ES6 原生 Promise(原生 JS,不是 npm): 使用 Node 0.12 以上版本时用它...注意:它是和类似 Winston 或 Bunyan 工具并用。由于它是中间件,所以知道如何处理请求并记录它,但不会 Winston 和 Bunyan 那样负责传输到日志输出中。...EJS: 你需要一个完全使用 JS 服务端模板引擎并且可以容忍空格缩进时选它(Pug 没有缩进) 。 注意:它不支持异步 JS 函数。

1.5K21

日常用得到 Koa 优雅代码指南

为什么选择 Koa 小王:为什么选择Koa? 老王:因为 Koa 比较轻量,几乎没有内置任何额外功能。...也是因为这个原因,Koa 灵活度是很高,喜欢折腾的人可以尝试下 小王:又轻量又几乎没有任何额外功能?那为什么不用原生Node?那个不是更轻? 老王:这个。。。。...app/index.js 命令,这个时候,最简单 node 服务已经启动起来了。...(data, ctx.utils.throwError(10001, '验证码失效')) ctx.body = '返回结果' } 再次返送请求,结果如下: 符合预期 再次修改 app/controllers...= name + age } 这里我们没有对参数进行校验了,我们尝试发送请求看看结果: 在请求参数中,我们把 age 这个参数去掉了,可以看到返回结果是我们预期,到这为止参数校验也搞定了,@hapi

1.8K20
您找到你想要的搜索结果了吗?
是的
没有找到

2024年Node.js精选:50款工具库集锦,项目开发轻松上手(三)

大家好,今天,继续我们Node.js探索之旅,深入了解一系列强大工具库,它们能够帮助我们在项目开发中提升效率、加固安全、优化性能,甚至更优雅地处理数据和逻辑。...从为Web应用加固安全Helmet,到简化数据验证Ajv,再到推动JavaScript函数式编程Ramda,这些库各有所长,却都指向同一个目标:让Node.js开发更加高效、安全且可维护。...框架集成:与Node.js、Express、Koa等流行框架无缝工作。...https://www.npmjs.com/package/jest 29、Helmet:加固Node.js Web应用安全盾牌 在开发基于ExpressNode.js Web应用时,安全性是一个不可忽视重要方面...下一篇文章,我将分享第30个至第40个Node.js工具集,为你开发工作带来新启示和工具。敬请期待我第四部分分享,让我们一起探索Node.js无限潜力。

18610

快速搭建node.js新项目?看这篇就够了!

也算是收获了不少知识和经验,因此,我来写下这篇文章,向大家分享一些关于node.js核心知识,并在最后手把手教你们快速搭建并配置一个node新项目(涉及如何配置express、joi、jwt、mysql...Node.js是什么? 首先,想必大家都使用过JavaScript吧! 你们知道为什么JavaScript可以操作浏览器中DOM和BOM吗?...+Mybatis能做,你都可以使用node.js来实现!...6.1 安装 joi 包,为表单中携带每个数据项,定义验证规则: npm install joi 6.2 安装 @escook/express-joi 中间件,来实现自动对表单数据进行验证功能: npm...i @escook/express-joi 6.3 新建 /schema/user.js 用户信息验证规则模块,并初始化代码如下: const joi = require('joi') ​ /**

10.8K83

解决:node后端接收到axiospost请求体竟为空?

---- BUG情境还原: 先介绍一下我后端node使用到包: "@escook/express-joi": "^1.1.1", //进行表单验证相关包 "cors": "^2.8.5", //解决请求跨域问题相关包..."express": "^4.17.2",//node.jsweb应用框架 "joi": "^17.6.0", //定义表单验证规则包 "mysql": "^2.18.1" //数据库相关包...表单验证,每次向api提交表单数据,都会先经过表单验证中间件,其中验证规则设置了username和password都是required 前端vue组件中写登录请求函数: ? ​...显然,是我表单验证中间件没有拿到前端发送过去username信息,于是我开始了漫长debug。 首先,我使用中间件,在数据提交到后台时,先在控制台打印一下req.body这个对象。 ? ​...经过网上查阅,我找到了如下解释 body-parserurlencoded方法顾名思义就是把传来数据当做url来处理,也就是querystring一样,所以对于传过来json数据,没有识别到切割

7.7K62

听说你还在用开发者工具手动上传小程序,快来试试 miniprogram-ci 提效摸鱼

/dist/index.js').default module.exports.default = module.exports 含义是引入dist文件夹下index.js文件, 但是刚克隆下来代码中并没有...可以在启动Node.js 程序时直接指定命令行参数,例如: node index.js --beep=boop -t -z 12 -n5 foo bar Node.js 程序启动后可以直接从process.argv...', '-n5', 'foo', 'bar'] 从上述代码中可以看到,process.argv 变量是一个数组,数组前两项分别是 node 程序位置和js脚本位置,数组中随后元素都是我们启动Node.js...而minimist 是一个专门用于处理Node.js启动参数库,可以将 process.argv 中参数列表转换成更加易于使用格式: const argv = require('minimist'...} } 支付宝小程序子类_init()方法主要做参数验证和设置;open,upload,preview实现了抽象类定义方法,分别用于打开开发者工具,上传代码,预览二维码。

1.9K20

三个技巧,将Docker镜像体积减小90%【面试+工作

用distroless去除容器中所有不必要东西 这个镜像包含了Node.js以及yarn、npm、bash和其他二进制文件。...Docker容器应该只包含一个进程以及用于运行这个进程所需最少文件,你不需要整个操作系统。 实际上,你可以删除Node.js之外所有内容。 但要怎么做?...你可以往常一样编译镜像: ? 这个镜像应该能正常运行。要验证它,可以这样运行容器: ? 现在可以访问http://localhost:3000页面。 不包含其他额外二进制文件镜像是不是小多了?...你可以运行唯一二进制文件是Node.js: ? 说它是个好消息,是因为如果攻击者利用你应用程序获得对容器访问权限将无法访问shell那样造成太多破坏。...换句话说,基于Alpine基础镜像构建容器可能会导致非预期行为,因为标准C库是不一样。 你可能会注意到差异,特别是当你处理预编译二进制文件(如Node.js C++扩展)时。

1.4K10

Node.js关注点分离

作者 | Emeni Oghenevwede 译者 | 明知山 策划 | 丁晓昀 关键要点 关注点分离是 Node.js 一种架构,可以确保代码可读性、易于重构和良好代码协作。...创建好 Node.js 项目架构 大多数时候,我们在大团队中工作,不同的人处理系统不同部分,如果事情没有得到妥当安排,就会变得混乱。...Node.js 惊人之处在于,你可以随心所欲地构造代码,没有所谓“正确方法”。你可以选择在一个 app.js 文件中编写所有代码,也可以创建多个文件并将它们放在不同文件夹中。...为什么项目架构如此重要 如前所述,好项目架构非常重要,而混乱架构可能会造成问题。下面是好架构一些好处。 使代码更具可读性和整洁性。 更容易避免重复代码。 更容易扩展和修改。...我们将构建一个可扩展结构,以便促进团队协作。我们将使用 Node.js、Express.JS 和 MongoDB。请先确保安装了 Node.js 和 MongoDB。

5.9K40

不容错过 Node.js 项目架构

Express.js 是用于开发 Node.js REST API 优秀框架,但是它并没有为您提供有关如何组织 Node.js 项目的任何线索。 虽然听起来很傻,但这确实是个问题。...正确组织 Node.js 项目结构将避免重复代码、提高服务稳定性和扩展性。...这是我要谈论 Node.js 项目结构。 我在构建每个 Node.js REST API 服务中都使用了下面这个结构,让我们了解下每个组件功能。...route.post('/', async (req, res, next) => { // 这应该是一个中间件或者应该由 Joi 这样库来处理 // Joi 是一个数据校验库...遵循经过测试验证适用于 Node.js Twelve-Factor App(十二要素应用 https://12factor.net/)概念,这是存储 API 密钥和数据库链接字符串最佳实践,它是用

5.8K30

使用JSON Schema来验证接口数据

如果之前看我写《使用joi验证数据模型》 可能会问,为什么不使用JOI,反而使用JSON Schema?...因为JOI这个nodejs库,除了验证格式,还带有验证字段关系功能,库体积相对庞大,而且对于含有嵌套格式JSON,用JOI来编写验证配置,极为繁琐。...如果还嫌编写Shema麻烦,哪位高手来写一个根据JSON自动生成JSON Schema工具。 DOJO已提供了JSON Schema来验证接口数据功能: dojo其实早已经这样干,我们可以借鉴。...// 引入dojojson schema验证模块 dojo.require("dojox.json.schema"); dojo.ready(function() { // 加载指定schema...如果我们要打造一个dojo这样json schema验证工具,除了validate功能,最好还会有一个fill功能,用于自动填充缺失字段。 相关资料 JSON Schema 规范

2.1K10

【译】73个超棒且可提高生产力 NPM 包

后端框架 7.Express[25] 为 Node.js 提供了快速、无约束、极简 web 框架。它是相对较小,并有较多可用插件特性。通常被称为 Node.js 标准服务器框架。...11.Axios[31] 基于 Promise HTTP 客户端,用于浏览器和 Node.js。与 JS 内置 Fetch API[32] 相比,它易于设置,直观且简化了很多工作。...39.Faker[62] 实用 npm 包,用于在浏览器和 Node.js 中制造大量假数据。 ✅ 校验工具 40.Validator[63] 便捷字符串验证器,使程序更加健壮库。...41.Joi[64] 强大 JavaScript schema 描述语言和数据验证器。 ?...系统模块 65.Fs-extra[88] fs -extra 包含了 Node.js fs 包中没有包含方法,比如 copy(), remove(), mkdirs() 66.Node-dir[89]

5.9K30

10个基于webJavaScript最优秀应用程序库和框架

最重要是,JQuery UI几乎适用于任何浏览器,因此用户不太可能抱怨应用程序没有预期工作。jQuery UI还提供了大量附加组件。...Parsley 表单验证是一项重要任务。因为现在数据经常被机器分析,所以干净数据比以往任何时候都更重要。事后清理数据是费时,而且从没有让用户首先提供正确信息那样准确。...微软、Netflix和LinkedIn这样知名公司都在使用Ember.js。因为它使用模型-视图-视图-模型(MVVM)模式,并将最佳实践作为框架一部分进行合并。最重要是,它伸缩性非常好。...Node.js Node.js是一个异步、事件驱动JavaScript运行时,具有一些独特特性。首先,如果它没有工作可做,它只是“去睡觉”。...这听起来并不是什么大问题,但是如果你在公共云上托管你网站,“让它休眠”可以帮你省下一大笔钱——可能是很多钱。此外,由于Node.js不需要锁来完成它工作,它不像其他框架那样倾向于死锁。

2.1K20

三个技巧,将Docker镜像体积减小90%

验证它,可以这样运行容器: $ docker run -p 3000:3000 -ti --rm --init node-distroless 现在可以访问 http://localhost:3000...但 distroless 版本是原始操作系统精简版,没有了额外二进制文件,所以容器里没有 shell! 在没有 shell 情况下,如何 attach 到正在运行容器呢? 答案是,你做不到。...你可以运行唯一二进制文件是 Node.js: $ docker exec -ti node 说它是个好消息,是因为如果攻击者利用你应用程序获得对容器访问权限将无法访问...换句话说,基于 Alpine 基础镜像构建容器可能会导致非预期行为,因为标准 C 库是不一样。 你可能会注意到差异,特别是当你处理预编译二进制文件(如 Node.js C++ 扩展)时。...它虽然体积很大,但提供了与 Ubuntu 工作站一样体验。此外,你还可以访问操作系统所有二进制文件。

88440

使用JSON Schema来验证接口数据

最近在做一些关于JSON Schema基建,JSON Schema可以描述一个JSON结构,那么反过来他也可以来验证一个JSON是否符合期望格式,于是我想到之前lqlong 之前一篇 《数据字段防卫探索...如果之前看我写《使用joi验证数据模型》 可能会问,为什么不使用JOI,反而使用JSON Schema?...因为JOI这个nodejs库,除了验证格式,还带有验证字段关系功能,库体积相对庞大,而且对于含有嵌套格式JSON,用JOI来编写验证配置,极为繁琐。...如果还嫌编写Shema麻烦,哪位高手来写一个根据JSON自动生成JSON Schema工具。 DOJO已提供了JSON Schema来验证接口数据功能: dojo其实早已经这样干,我们可以借鉴。...如果我们要打造一个dojo这样json schema验证工具,除了validate功能,最好还会有一个fill功能,用于自动填充缺失字段。 相关资料 JSON Schema 规范

2.3K60

Node 如何在 Controller 层进行数据校验

、手机号、邮箱与域名 const body = { id, name, mobilePhone, email } 山月接触过一个没有数据校验层后端项目,if/else 充斥在各种层级...1[3-9]\d{9}$/.test(str)); Joi joi[3] 自称最强大 JS 校验库,在 github 也斩获了一万六颗星星。...❝The most powerful data validation library for JS ❞ 完成相同校验,仅需要更少代码,并能够完成更加强大校验。以下仅做示例,更多示例请前往文档。...总结 Controller 层需要进行统一数据校验,可以采用 JSON Schema (Node 实现 ajv) 与 Joi JSON Schema 有官方规范及各个语言实现,但语法繁琐,可使用校验功能更为强大...Joi 进行字符串校验时,注意不安全正则引起性能问题 Reference [1] json-schema.org: http://json-schema.org/ [2] ajv: https:/

1.4K10

三个技巧 大幅减少 Docker 镜像体积

验证它,可以这样运行容器: $ docker run -p 3000:3000 -ti --rm --init node-distroless 现在可以访问 http://localhost:3000...但 distroless 版本是原始操作系统精简版,没有了额外二进制文件,所以容器里没有 shell! 在没有 shell 情况下,如何 attach 到正在运行容器呢?答案是,你做不到。...你可以运行唯一二进制文件是 Node.js: $ docker exec -ti docker_id_here node 说它是个好消息,是因为如果攻击者利用你应用程序获得对容器访问权限将无法访问...换句话说,基于 Alpine 基础镜像构建容器可能会导致非预期行为,因为标准 C 库是不一样。你可能会注意到差异,特别是当你处理预编译二进制文件(如 Node.js C++扩展)时。...它虽然体积很大,但提供了与 Ubuntu 工作站一样体验。此外,你还可以访问操作系统所有二进制文件。

1.4K20

一篇文章构建你 NodeJS 知识体系(W字长文)

相反,使用一个真正中间件服务 Nginx 更好。否则可怜单线程 Node 将不幸地忙于处理网络任务,而不是处理应用程序核心,性能会相应降低。...ORM/ODM 库防止查询注入漏洞 要防止 SQL/NoSQL 注入和其他恶意攻击, 请始终使用 ORM/ODM 或 database 库来转义数据或支持命名或索引参数化查询, 并注意验证用户输入预期类型...验证传入 JSON schemas 验证传入请求 body payload,并确保其符合预期要求, 如果没有, 则快速报错。...为了避免每个路由中繁琐验证编码, 您可以使用基于 JSON 轻量级验证架构,比如 jsonschema 或 joi 支持黑名单 JWT 当使用 JSON Web Tokens(例如, 通过 Passport.js...在 npm 中启用两层身份验证(2-factor-authentication), 攻击者几乎没有机会改变您软件包代码。

1.7K10
领券