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

【译】如何在 Node.js 中创建安全的 GraphQL API

原文地址:How to Create a Secure Node.js GraphQL API 作者:Marcos 本文的目的是提供一份快速指南 -- 《如何快速在如何在 Node.js 中创建安全的...这篇文章还展示了如何使用 Node.js 和 Express 来开发 REST API 框架,你可以在这两种方法中找出一些差异。...在源文件中,你可以使用 TypeScript 来修改所有的内容。 Let’s Code! 首先,确保你的 Node.js 版本是最新的。撰写本文时,Node.js 当前的版本为 10.15.3。...总结与最后的想法 即使已经尽量减少篇幅了,这篇文章还是很长,因为包含了许多关于开发 GraphQL Node.js API 的基本信息。...请注意,本文中所提到所有标准和建议都不会是一成不变的。 这只是许多构建 GraphQL API 方法中的一种。

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

    Node.js RESTful API(下)

    显示用户详情 以下代码,我们创建了 RESTful API :id(用户id), 用于读取指定用户的详细信息,server.js 文件代码如下所示: var express = require('express...var app = express(); var fs = require("fs"); app.get('/:id', function (req, res) { // 首先我们读取已存在的用户...访问地址为 http://%s:%s", host, port) }) 接下来执行以下命令: $ node server.js 应用实例,访问地址为 http://0.0.0.0:8081 在浏览器中访问...suresh", "password":"password2", "profession":"librarian", "id":2 } 删除用户 以下代码,我们创建了 RESTful API...deleteUser, 用于删除指定用户的详细信息,以下实例中,用户 id 为 2,server.js 文件代码如下所示: var express = require('express'); var

    1.9K20

    Node.js RESTful API(上)

    "password" : "password3",      "profession" : "clerk",      "id": 3 } } 基于以上数据,我们创建以下 RESTful API...POST JSON 字符串 添加新用户 3 deleteUser DELETE JSON 字符串 删除用户 4 :id GET 空 显示用户详细信息 获取用户列表: 以下代码,我们创建了 RESTful API...访问地址为 http://%s:%s", host, port) }) 接下来执行以下命令: $ node server.js 应用实例,访问地址为 http://0.0.0.0:8081 在浏览器中访问...password" : "password3", "profession" : "clerk", "id": 3 } } 添加用户 以下代码,我们创建了 RESTful API...访问地址为 http://%s:%s", host, port) }) 接下来执行以下命令: $ node server.js 应用实例,访问地址为 http://0.0.0.0:8081 在浏览器中访问

    2.2K30

    Node.js 的 api 设计的源头:POSIX

    如果你用过 linux 命令或者 c 的函数库,你会发现这些 api 在命令和 c 函数库中也都是这个名字。 为什么会这样呢?这些 api 是什么标准么?...Node.js 的 api 的特点就是抽象并不多,而且很多 api 名字和 linux 命令都很像,贴近 POSIX 标准。...Node.js 的 api 并没有做很多抽象,名字也很大部分和 POSIX 标准的 api 比较像,这是它的特点,相比之下,JRE 暴露给 java 的 api 则做了很多抽象。...因为 Node.js 的 api 很多和 c 函数库、shell 命令比较接近,所以学习 Node.js 结合学习 shell 命令,或者会 c 的可以再学下系统的函数库会有更多的收获。...了解 POSIX,是理解 Node.js api 设计,学好 Node.js 的前提。

    76520

    Node.js 异步 api 的本质和 libuv

    Node.js 是一个 Javascript 的运行时,提供了系统能力的 api,主要是文件、网络相关的 IO api,而 IO api 的实现是在 libuv,提供了同步异步两种形式的 api。...在 Node.js 文档中搜索 UV_THREADPOOL_SIZE 可以看到这段介绍: 就是说 libuv 是负责 IO 的 api 的异步实现的,基于更底层的操作系统 api。...libuv 提供了 IO 相关的 api,在 Node.js 的架构中的位置如下: IO api 的 3 种形式 梳理清楚了同步异步方式的实现原理,我们再来看下 Node.js 都怎么提供这两种 api...,推荐使用 promise 形式的异步 api,当然,必须是 Node.js 10 以上的版本。...Node.js 里面的 event loop 的实现是在 libuv,它提供了文件和网络的异步 IO 的 api,从文档中我们可以看到,libuv 是基于操作系统的 api 实现的,而其中一些同步的 api

    1.1K20

    Node.js RESTful API如何使用?

    统一接口:API 应该使用统一的接口规范,包括统一的命名规则、返回数据格式和错误处理方式等。Node.js 提供了丰富的工具和模块,使我们能够轻松地构建符合 RESTful API 设计的应用程序。...安装和初始化 Node.js 项目在开始之前,我们需要先安装 Node.js。你可以访问官方网站并按照指引下载适用于你的操作系统的 Node.js 安装包,然后进行安装。...安装和设置 Express 框架Express 是一个流行的 Node.js Web 框架,它提供了简洁而灵活的 API,用于构建 Web 应用程序和 RESTful API。...我们首先了解了 RESTful API 的概念和原则,然后安装和初始化了一个 Node.js 项目,接着安装和设置了 Express 框架,并实现了一个简单的 RESTful API。...希望本文能够帮助你理解和掌握 Node.js RESTful API 的基本知识和技巧。

    40520

    使用Node.js构建API网关

    使用Node.js构建API网关 当微服务架构中的服务被外部的客户端访问时,可以共享有关身份验证和传输的一些常见请求。...由于JavaScript是为浏览器开发应用程序的主要语言,即使你的微服务体系结构使用其他的语言进行开发,但是使用Node.js也不失为一个实现API网关的绝佳选择。...Node.js API网关 虽然你希望在API网关中执行简单的操作,例如将请求路由到特定的服务,但你可以使用逆向代理(如nginx)。但是在某些时候,你可能需要实现一般代理不支​​持的逻辑。...在这种情况下,你可以在Node.js中实现自己的 API网关。...在Node.js中,你可以使用http-proxy包简单地将请求代理到特定服务,或者你可以使用功能更多的功能丰富的express-gateway来创建API网关。

    5.1K90

    Node.js中的MongoDB

    集合(collection):集合类似于数组,在集合中可以存放文档。 文档(document):文档数据库中的最小单位,我们存储和操作的内容都是文档。...为Html5的文档中,添加一个classes:{base:["h6+c3","js","jQuery", "abc"] , core:["三大框架","node.js"]} //MongoDB的文档的属性值也可以是一个文档..."jQuery", "abc"], core:["三大框架","node.js"]}}}); db.colleges.find(); //11.查询有核心课程为 三大框架 的文档 //MongoDB支持直接通过内嵌文档的属性进行查询.../12.向name为Html5的文档中,添加一个新的核心课程 "微信小程序" //$push 用于向数组中添加一个新的元素 //$addToSet 向数组中添加一个新元素 , 如果数组中已经存在了该元素...err) { console.log(count); } }); 遇到问题可以查看api MongoDB教程 mongoose的API文档

    5.3K40

    用Node.js创建安全的 GraphQL API

    本文的目标是提供关于如何创建安全的 Node.js GraphQL API 的快速指南。 你可能会想到一些问题: 使用 GraphQL API 的目的是什么? 什么是GraphQL API?...在今天的文章中,我们将专注于怎样用Node.js创建GraphQL API。 为什么要使用Node.js? GraphQL有好几个不同的支持库可供使用。...掌握GraphQL 我们将为自己的 GraphQL API 设计一个构思的框架,在开始之前,你需要了解Node.js和Express的基础知识。...在后台场景中,我们的配置会将 TypeScript 代码编译为纯 JavaScript,然后在build文件夹中执行构建。 现在为GraphQL API配置一个基本框架。...mutation 演示 现在我们可以用GraphQL Node.js API进行基本的CRUD操作了。接下来开始使用这些代码。

    1.6K30

    在基于Node.js的微服务应用程序中实现API网关模式

    了解 API 网关模式 API 网关模式是微服务架构中的一个关键组件,充当客户端交互的集中式入口点。这种模式通过智能地将请求路由到相应的微服务并聚合响应来协调流量,从而提供无缝的客户端体验。...API 网关简化了客户端实现,增强了安全性,并优化了基于微服务的系统中的通信。 API 网关模式有哪些优势? 使用 API 网关模式为应用程序提供了许多好处。...日志记录和监控:集中日志记录和监控功能,提供对整个微服务架构的运行状况、性能和使用模式的洞察。 如何在 Node.js 中实现 API 网关模式?...现在我们已经对 API 网关模式是什么以及它是如何工作的有了基本的了解,让我们看一下如何在 Node.js 中实现一个。 重要的是要了解,没有“一种”方法可以做到这一点。...mkdir api-gateway cd api-gateway 初始化新的 Node.js 项目。 npm init -y 安装需要的依赖项。

    13110

    看了就会的 Node.js 三大基础模块常用 API

    在 A 中需要操作 B 项目下的文件时,就可以用 process.cwd() 来获取 B 项目的路径。...在 vue-cli 的源码中也经常会看到 process.env.VUE_CLI_DEBUG 标识当前是不是一 DEBUG 模式。...这里提一个 webpack 的插件 DefinePlugin[2],在日常的构建流程中,我们经常会通过这个插件来注入不同的全局变量,从而执行不同的构建流程,并且代码中的 process.env.xxx...模块的 API 默认都是异步回调的形式,如果你想使用同步的方法,有两种解决方法: 使用 Node 提供的同步 API:xxxSync,也就是在 API 的后面加一个 Sync 后缀,它就是一个同步方法了...在 CLI 中,经常需要获取一个路径下的所有文件,这时候也需要使用 fs.stat 来判断是目录还是文件,如果是目录则继续递归。当然,现在也有更方便的 API 可以完成这个工作。

    90530

    Node.js中的内存泄漏分析

    但是,即便有了 GC 机制可以自动释放,但这并不意味这内存泄漏的问题不存在了。内存泄漏依旧是开发者们不能绕过的一个问题,今天让我们来了解如何分析 Node.js 中的内存泄漏。...在 V8 中,每次 GC 时,是根据 root 对象 (浏览器环境下的 window,Node.js 环境下的 global ) 依次梳理对象的引用,如果能从 root 的引用链到达访问,V8 就会将其标记为可到达对象...了解上述的点之后,你就会知道,在 Node.js 中内存泄露的原因就是本该被清除的对象,被可到达对象引用以后,未被正确的清除而常驻内存。 内存泄漏的几种情况: 一、全局变量 ?...例如,Node.js 中 Agent 的 keepAlive 为 true 时,可能造成的内存泄漏。...使用 heapdump 保存内存快照时,只会有 Node.js 环境中的对象,不会受到干扰(如果使用 node-inspector 的话,快照中会有前端的变量干扰)。

    3.7K50

    理解 Node.js 的中 Worker Threads

    事件循环:这是 Node.js 中需要重点理解的一个部分,尽管 JavaScript 是单线程的,但通过使用回调,promises, async/await 等语法,基于事件循环将对操作系统的操作异步化...其他方案 此外,目前已经存在很多对于 CPU 密集型操作的解决方案,比如多进程(cluster API)方案,保证了充分利用多核 CPU。...此外它们还拥有稳定的 API,然而,这也意味着不能同享内存空间,而且进程间通信只能通过 JSON 格式的数据进行交互。...我们希望这些分配资源能够嵌入到 Node.js 中,让 Node.js 有创建线程的能力,并且在线程中创建一个新的 Node.js 实例,本质上就像是在同一个进程中运行多个独立的线程。...不要认为创建 Worker 进程的开销是很低的。 最后 Chrome devTools 支持 Node.js 中的 Workers 线程特性。

    2K40
    领券