我最喜欢的10个Node.js项目

像熟练的技术人员一样,经验丰富的开发人员也依赖一套工具来帮助他们有效地完成工作。 但是,尝试选择正确的工具可能会令人生畏,尤其是当您有很多选择时。

Node.js就是这种情况,它以其充满活力的社区而闻名,该社区贡献了供他人使用的代码和工具,为新一代应用程序增添了可观的价值。 但是,有这么多的选择,要找到最可靠的项目来满足您的开发需求并不容易。

为了给您一些帮助,我将分享在您的开发项目中考虑使用的10个最有用的开源Node.js项目。

什么是Node.js?

Node.js是一个开放源代码JavaScript运行时环境,在编写服务器端JavaScript应用程序时很流行。 它是事件驱动的,并且在非阻塞I / O模型上工作,使其轻巧高效地用于构建Web应用程序。 自2009年推出以来,Node.js在其发布后Swift流行,部分原因是它的体系结构,用例和优势为其前身提供了优势。 Netflix,Amazon和eBay等大型公司表示,使用Node.js的主要原因是其现代功能和缩短启动时间的能力。

由于Node.js是开源的运行时环境,因此任何人都可以开始使用它。 这也取决于开放源代码的贡献和可免费使用的项目。 幸运的是,Node.js有大量此类项目。

十大Node.js项目

这是您可以使用的10个最著名和最有用的开源Node.js项目。

1.快递

Express是最受欢迎的Node.js框架之一。 它已经存在了一段时间,并以其简单和极简主义而闻名。 Express提供了巨大的价值,因为它使HTTP请求变得高效,即使在使用JavaScript(浏览器和服务器端语言)时也是如此。

Express的一些比较流行的功能包括使用各种URL路由管理HTTP请求的处理程序,用于插入模板数据的渲染引擎集成以及中间件请求处理。 Express也是一个不受限制的框架,这意味着您不会在执行它时遇到任何问题,因为您不受限于使用它来解决问题的任何“正确方法”。

许多新开发人员采用开放源代码框架,后来意识到它们没有得到积极更新。 对于开源框架而言,这可能是一个关键问题,并且对采用它们的开发人员构成了巨大的风险。 但是,借助Express,您将在清澈的海水中航行,因为它有一个强大的社区,可以提供经常的更新。 超过17种不同的中间件和复杂框架(包括Feathers,ItemsAPI,KeystoneJS,Poet和Kraken)以及大型公司(例如Uber,IBM和Accenture)都使用Express。

2.哈皮

如果您使用Node.js已有一段时间,您可能会发现Hapi是框架生态系统中的异常。 它不如Express流行,但这主要是因为Express较旧,并且Hapi在过去几年中已Swift追赶。

如果性能是核心指标,那么您可能更喜欢Express而不是Hapi。 尽管以我的经验来看,性能差异几乎不明显,但它们仍然存在。 如果您对功能感兴趣,那么Hapi的众多功能可能使其成为您的首选。

使用Hapi将向您展示框架在插件和安全,频繁更新的代码的帮助下可以做什么。

3.电子

如果您是Web应用程序开发人员,则桌面产品开发似乎是一场噩梦。 尽管JavaScript使在支持多个平台的应用程序上的工作变得更加容易,但是一旦产品扩展到一家公司,您就必须使用每个平台并添加功能。 由GitHub设计的Electron通过整合一个统一的系统消除了这种麻烦。

如果您要制作客户端或基于Web的应用程序,Electron将大大简化开发过程。 有人声称,Electron比常规框架占用更多的内存。 实际上,通过有效的编程,这很容易避免。

如果您的应用程序或产品必须使用图形用户界面(GUI),Electron将非常适合您。 由于它部署了Web技术,因此即使使用复杂的UI / UX模块,它也可以很好地工作。 电子制造的应用程序的开发,部署,更新和维护都很简单,因为它提供了一个代码库来跨所有平台管理您的应用程序。

Electron使用JavaScript和Node.js,以及HTML和CSS。 它利用了Chrome引擎(Chromium)的强大功能,因此在开始使用Electron之前,请务必先了解Chromium的功能。

4. Visual Studio代码

VSCode是与语言无关的源代码编辑器,可与JavaScript和Node.js配合使用。 经Microsoft编译,它已获得Microsoft Sofware许可证的许可,但是您可以从VSCodium.com使用开放源代码的许可证下载相同的应用程序。 VSCode与语言无关,支持多种语言和大量扩展。 它使您可以轻松地从项目树中排除不必要的文件,并与Git很好地集成。

Visual Studio Code的一个令人兴奋的部分是它将Electron框架与Blink浏览器引擎一起使用。 作为源代码编辑器,它具有出色的放大调试,语法突出显示和代码完成过程的能力,这就是为什么它在Stack Overflow年度开发人员年度调查中被评为2019年最受欢迎的开发环境工具的原因。

5. JavaScript标准样式

如果需要是发明之母,那么简单就是效率之母。 毕竟,简单性和标准化可以帮助确保您在进行持续开发过程时不会心血来潮。

标准JS有一个简单的主张:您的代码格式应一致且标准化。 它会自动设置代码格式,使其与社区准则保持一致,以帮助您在每次更新内容时为代码库做出适当的贡献。

通常,如果您正在从事一个涉及多个人的项目,或者您将长期参与其中的一个项目,那么在您身边拥有Standard JS是很有意义的。 否则,您将必须在所有项目中为每个模型创建和维护样式配置文件。 当您编码时,这可能是乏味且累人的。 由于样式错误,没有人愿意花几个小时编写代码,而没有得到他们期望的结果。

许多组织(包括GitHub,Zendesk,GoDaddy和英国政府)都使用Standard JS,因此您可以从中获得安全,标准化的环境和功能。

6. ESLint

大多数喜欢JavaScript的程序员都喜欢这种编程语言,因为它的类型很松散。 如果您知道自己在做什么,就会产生结果。 对于那些刚熟悉该语言的程序员来说,这种自由成为一个问题,因为他们还没有一个直观的过程来避免开发人员错误。 这是ESLint出现的地方。

ESLint是用于编码的整理工具,这意味着它会对代码执行静态分析,并发现不符合常规样式准则的错误,图案和线条。 在执行代码之前,这增加了检查代码是否工作的额外级别。 一些编译器具有基本的linting功能,但ESLint却将其提高了一个等级。

尽管根据语言的常规样式准则发现错误是ESLint的主要产品,但它并不是最关键的产品。 ESLint的最佳功能是可定制性。 您可能需要在代码库中合并一些特有的样式或特定于项目的规则。 ESLint带有一组默认规则,但是您可以随时随地更改它们。 在采用方面,Facebook,Netflix,Atlassian,Zendesk,Box和PayPal均使用ESLint。

7. Sinon.JS

如果您学习编程课程,那么测试总是受到最少的关注。 毕竟,您作为程序员的主要责任是编写代码,对吗? 不完全是。 你的主要职责是, 工程编写代码。 测试对于实现这一目标至关重要。

测试代码模块或单元的最大问题是这样做并不总是可行的。 科学家必须控制所有变量以研究因果关系。 同样,程序员必须经过大量循环才能确保其代码正常工作。 但是,如果您的代码不起作用怎么办?

例如,假设您的代码对时间敏感,但运行速度慢了一秒钟,并且您需要服务器访问权限来检查代码是否按应有的方式运行。 即使对于代码的最关键部分,这也是一种低效的测试方法。

Sinon帮助您用简单的占位符变量替换复杂的代码,这些变量用作“ test-doubles”。 这使您可以进行测试,同时跳过测试内容的许多复杂性。 Sinon.JS增强了 JavaScript在不损害其功能的情况下将一个元素替换为另一个元素的能力。 Sinon使用Spies帮助您找到函数调用所需的信息,而不会扭曲其属性。 存根允许您替换功能,以便您可以要求它执行特定的操作,并查看结果。

8.摩卡咖啡和9.柴

MochaChai通常与Sinon.JS一起使用,以确保测试的准确性,功能性,并且独立于其他单元测试运行。

测试既关键又具有挑战性,这有两个主要原因:首先,您必须将正常工作的单元与无效的单元隔离开。 其次,出于正确的原因,您必须将其分开。 您不能负担不起一个单元的功能(反之亦然)。 就像实验室测试一样,您不能承受编程中的假阳性或假阴性。

摩卡咖啡

摩卡咖啡适应了这两个约束。 它是一个测试框架,可以帮助您测试代码的各个单元,而不会干扰单元的行为。 您将看到标记describeit横跨你摩卡编写测试代码。 describe亮点测试套件,专注于测试一个功能,而it突出的单元是否已经通过测试或没有。

hai

Chai框架以一种简单的方式来增强您的测试过程:它给出了一个单元的期望值。 Chai的Assertion库包含帮助您测试单元的所有主要功能和方法。 通过Chai运行您的单元后,它将返回单元的结果并比较预期结果与实际结果。

尽管使Chai正常工作的应用程序和原理非常简单(您的单位应按其设计的工作去做),但是它可以帮助您计划每个单位期望的功能。 稍后,在扩展产品规模时,您将了解在将每个单元集成到代码库中之前确保每个单元按照预期运行的重要性。

10.氢

Hygen是一种代码生成器,可以在您没有时间进行更多工作时为您提供帮助。 多年来,开发人员一直在嘲笑代码生成器的想法。 他们的基本目的很明确:它们为您生成代码,因此您可以节省时间。 但是直到Hygen为止,没有代码生成器产生过显着的编程效率提升。

Hygen静静地坐在您的代码中,直到您调用它为止。 代码生成器具有上下文理解,可伸缩性和语言不可知论性。 有了正确的集成,Hygen可以为您节省大量的编程时间,否则您将花费​​大量时间来键入冗余代码。

Hygen可与Redux,Express.js和React Native项目完美配合。 Hygen带有自己的一组软件包,这些软件包可以通过生成用于此类项目的通用代码来帮助您加快React Native和Express.js项目的开发。 熟悉项目的详细信息后,就可以将代码生成保留在本地。 如果您正在从事复杂的项目,或者拥有新的或大型的团队,这可能会很有帮助。 Hygen使用您设置的程序包和生成规则来处理普通代码。

结论

从您必须处理的信息量或从脑海中浮现的关于如何使用它们的所有新想法中,查看这些项目可能会令人不知所措。 但是,有了这些可用的项目,世界就是您的沙箱。

好的编程可以帮助您完全按照自己的方式构建项目。 如果您遇到困难,这些开源项目可以帮助您开发卓越的应用程序。

翻译自: https://opensource.com/article/20/6/nodejs-projects

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Node.js 中编写按钮级权限接口可以通过以下步骤实现: 1. 创建一个 Express 应用或任何你喜欢Node.js 框架的应用。 2. 定义用户角色和权限:在你的数据库中创建一个角色表和权限表,记录每个角色的按钮级权限。 3. 实现用户认证:使用中间件(如 Passport.js)来处理用户认证,并在认证成功后将用户信息存储在 session 或 token 中。 4. 定义接口路由:根据你的需求,创建适当的接口路由。例如,你可以创建一个 `/api/buttons` 的路由来处理按钮级权限相关的请求。 5. 添加权限验证中间件:在需要按钮级权限验证的路由上添加一个自定义中间件。这个中间件应该根据用户的角色和请求的按钮权限来判断是否有权访问该接口。 以下是一个示例代码: ```javascript // 导入所需模块 const express = require('express'); const app = express(); // 用户角色和权限的示例数据 const roles = [ { id: 1, name: 'admin', permissions: ['button1', 'button2', 'button3'] }, { id: 2, name: 'user', permissions: ['button1', 'button3'] } ]; // 权限验证中间件 function checkButtonPermission(req, res, next) { // 获取用户角色和请求的按钮权限 const { role, button } = req; // 检查用户角色是否存在 const userRole = roles.find(r => r.name === role); if (!userRole) { return res.status(401).json({ message: 'Invalid role' }); } // 检查按钮权限 if (!userRole.permissions.includes(button)) { return res.status(403).json({ message: 'Insufficient permission' }); } next(); // 继续下一个中间件或处理程序 } // 定义按钮级权限接口 app.get('/api/buttons', checkButtonPermission, (req, res) => { // 如果通过权限验证,可以在这里处理按钮级权限相关的逻辑 res.json({ message: 'Access granted' }); }); // 启动服务器 app.listen(3000, () => { console.log('Server is running on port 3000'); }); ``` 在上述示例中,我们首先定义了一个角色和权限的示例数据,然后创建了一个 `checkButtonPermission` 中间件来验证用户的角色和按钮权限。最后,我们使用 `/api/buttons` 路由来处理按钮级权限相关的请求,并将 `checkButtonPermission` 中间件添加到该路由上。 请注意,这只是一个简单的示例代码,你可以根据自己的需求进行修改和扩展。另外,还可以使用数据库来存储和管理角色和权限信息,以便更灵活地进行管理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值