Express.js

构建RESTful API的13种最佳实践

﹥>﹥吖頭↗ 提交于 2020-12-23 19:45:27
翻译:Eolinker 来源: www.eolinker.com Facebook、GitHub、Google以及其他许多巨头都需要一种服务和消费数据的方式。在当今的开发环境中,RESTful API仍然是服务和消费数据的最佳选择之一。 但是你是否考虑过学习行业标准?设计RESTful API的最佳实践是什么?从理论上讲,任何人都可以在不到五分钟的时间内快速启动数据API——无论是Node.js,Golang还是Python。 我们将探讨在构建RESTful API时应考虑的13种最佳实践。 什么是RESTful API? RESTful API需要满足以下约束才能被称为RESTful API。 客户端-服务器模型:RESTful API遵循客户端-服务器模型,其中服务器为数据提供服务,而客户端连接到服务器以使用数据。客户端和服务器之间的交互是通过HTTP(S)请求进行的,该请求传输了请求的数据。 无状态:更重要的是,RESTful API应该是无状态的。每个请求都被视为独立请求。服务器不应跟踪可能影响将来请求结果的任何内部状态。 统一接口:最后,一致性定义了客户端和服务器之间的交互方式。RESTful API定义了命名资源的最佳实践,但定义了允许你修改资源/与之交互的固定HTTP操作。可以在RESTful API中访问以下HTTP操作: • GET请求:检索资源 • POST请求

再也不怕面试官问你express和koa的区别了

两盒软妹~` 提交于 2020-10-16 07:47:44
前言 用了那么多年的express.js,终于有时间来深入学习express,然后顺便再和koa2的实现方式对比一下。 老实说,还没看express.js源码之前,一直觉得express.js还是很不错的,无论从api设计,还是使用上都是可以的。但是这次阅读完express代码之后,我可能改变想法了。 虽然express.js有着精妙的中间件设计,但是以当前js标准来说,这种精妙的设计在现在可以说是太复杂。里面的层层回调和递归,不花一定的时间还真的很难读懂。而koa2的代码呢?简直可以用四个字评论:精简彪悍!仅仅几个文件,用上最新的js标准,就很好实现了中间件,代码读起来一目了然。 老规矩,读懂这篇文章,我们依然有一个简单的demo来演示: express-vs-koa 1、express用法和koa用法简单展示 如果你使用express.js启动一个简单的服务器,那么基本写法应该是这样: const express = require('express') const app = express() const router = express.Router() app.use(async (req, res, next) => { console.log('I am the first middleware') next() console.log('first

npm WARN package.json:没有存储库字段

好久不见. 提交于 2020-08-16 03:17:11
问题: I installed Express.js with the following command: 我使用以下命令安装了Express.js: sudo npm install -g express I get the following warnings: 我收到以下警告: npm WARN package.json range-parser@0.0.4 No repository field. npm WARN package.json fresh@0.1.0 No repository field. npm WARN package.json methods@0.0.1 No repository field. npm WARN package.json methods@0.0.1 No readme data. npm WARN package.json cookie-signature@1.0.1 No repository field. npm WARN package.json send@0.1.0 No repository field. npm WARN package.json pause@0.0.1 No repository field. npm WARN package.json bytes@0.2.0 No repository field.

Nodejs

不问归期 提交于 2020-08-15 19:25:24
新建一个 nodejs 项目. Pre install: Nodejs npm - Steps: mkdir nodejs-hw-pure cd nodejs-hw-pure new file: hellonode.js //引入required模块 var http = require("http"); //创建服务器 http.createServer(function(request,response){ //发送头部 response.writeHead(200,{'Content-Type':'text/plain'}); //发送响应数据 response.end('hello Nodejs...\n'); }).listen(8888); //终端打印以下信息 console.log('Server running at http://127.0.0.1:8888/'); 4. Run: $ node hellonode.js 5. Verify on Browser (Chrome): http://127.0.0.1:8888/ Use Express $ npm install express --save $ npm install body-parser --save $ npm install cookie-parser --save $ npm

为什么不将CORS标头添加到OPTIONS路由允许浏览器访问我的API?

扶醉桌前 提交于 2020-08-15 07:53:39
问题: I am trying to support CORS in my Node.js application that uses the Express.js web framework. 我正在尝试在使用Express.js Web框架的Node.js应用程序中支持CORS。 I have read a Google group discussion about how to handle this, and read a few articles about how CORS works. 我已经阅读 了 有关如何处理此 问题的Google小组讨论 ,并阅读了一些有关CORS工作原理的文章。 First, I did this (code is written in CoffeeScript syntax): 首先,我做到了(代码是用CoffeeScript语法编写的): app.options "*", (req, res) -> res.header 'Access-Control-Allow-Origin', '*' res.header 'Access-Control-Allow-Credentials', true # try: 'POST, GET, PUT, DELETE, OPTIONS' res.header 'Access-Control-Allow

Serverless Dashboard 设计解读与实战

删除回忆录丶 提交于 2020-07-27 09:09:18
作为腾讯云 Serverless 的产品经理,我经常会收集到小伙伴们在使用 Serverless Framework 的一些问题和吐槽,比如近期小伙伴们反馈: 依赖库安装和本地调试成功,但在云端部署为何失败? Serverless 应用内部的监控,无法直接查看,每次定位问题的流程好长啊! 怎样组织 Serverless 应用? 不同的函数之间的调用关系、环境划分、资源的管理及权限控制是怎样的呢? 近期 Serverless 团队发布了一款里程碑新特性产品,产品通过支持应用级别监控和 Dashboard 资源管理,有效解决小伙伴们的痛点问题,一起来看看吧! Serverless Dashboard 新特性 1. 应用管理 本次发布的应用管理页面则以 Component 为粒度,聚合了所有 Serverless Framework 部署的资源,并且展示了实例状态、访问链接以及上次的部署信息。此外,在管理详情中还支持删除 Serverless 应用、下载项目代码进行二次开发等操作,开发者可以更方便、集中的管理账号下的 Serverless 应用。如下图所示: 2. 部署详情及输出 Serverless Framework 的特性之一就是可以便捷的联动关联的云上资源,因此不同的 Serverless Component,可能会联动不同的云上资源,如网关、云函数、COS等

[转]Node.js框架对比:Express/Koa/Hapi

北城余情 提交于 2020-04-28 03:20:45
本文转自: https://www.cnblogs.com/souvenir/p/6039990.html 本文翻译自: https://www.airpair.com/node.js/posts/nodejs-framework-comparison-express-koa-hapi 1、介绍   直至今日,Express.js仍然是最为流行的Node.js Web应用程序框架。它似乎已经逐渐成为大多数Node.js Web应用程序的基础依赖框架,包括很多流行的框架,比如Sail.js就是以Express.js为基础搭建的。然而现在我们有了更多“类sinatra” (注:sinatra是一款Ruby框架,代码非常简洁,号称开发一个博客项目只需要100行代码) 似的框架可以选择。也就是接下来我们将分别介绍的Koa和Hapi两个框架。   本文的目的并不是打算去说服大家去使用其中的任何一款框架,而是希望能够帮助大家去对比分析这三个框架的优劣势。 2、框架背景   今天我们对比的这三款框架其实都有很多的共通点。比如他们都可以几行代码就能创建一个服务,而且进行REST API的开发也是小菜一碟。下面我们就分别来看这三款框架吧。 2.1、Express   2009年6月26日,TJ Holowaychuk 第一次提交了Express的代码。在2010年1月2日,Express正式发布了0

如何检索POST查询参数?

徘徊边缘 提交于 2020-04-27 20:55:25
问题: Here is my simple form: 这是我的简单形式: <form id="loginformA" action="userlogin" method="post"> <div> <label for="email">Email: </label> <input type="text" id="email" name="email"></input> </div> <input type="submit" value="Submit"></input> </form> Here is my Express.js /Node.js code: 这是我的 Express.js /Node.js代码: app.post('/userlogin', function(sReq, sRes){ var email = sReq.query.email.; } I tried sReq.query.email or sReq.query['email'] or sReq.params['email'] , etc. None of them work. 我尝试了 sReq.query.email 或 sReq.query['email'] 或 sReq.params['email'] 等。它们都不起作用。 They all return undefined . 他们都返回

npm WARN package.json:没有存储库字段

两盒软妹~` 提交于 2020-04-26 09:30:35
问题: I installed Express.js with the following command: 我使用以下命令安装了Express.js: sudo npm install -g express I get the following warnings: 我收到以下警告: npm WARN package.json range-parser@0.0.4 No repository field. npm WARN package.json fresh@0.1.0 No repository field. npm WARN package.json methods@0.0.1 No repository field. npm WARN package.json methods@0.0.1 No readme data. npm WARN package.json cookie-signature@1.0.1 No repository field. npm WARN package.json send@0.1.0 No repository field. npm WARN package.json pause@0.0.1 No repository field. npm WARN package.json bytes@0.2.0 No repository field.

腾讯云正式发布 Serverless Framework

亡梦爱人 提交于 2020-04-23 10:27:57
4 月 21 日 14:00,腾讯云召开了 Serverless Framework 线上发布会,会议邀请到了 serverless.com CEO Austen Collins 、腾讯云中间件总经理 & 首席架构师 Yunong Xiao 等重磅嘉宾进行相关分享和探讨,本次发布会在腾讯云大学、哔哩哔哩、知乎平台同步直播,近千人观看了本次发布会。 产品发布会上,首先,腾讯云中间件总经理&首席架构师 Yunong Xiao 从宏观的角度阐述了 Serverless Framework 的特性,宣布产品正式发布。他指出 Serverless 的核心价值在于聚焦业务,不需关注底层资源 (Focus on outcomes, not Infrastructure),此次产品发布,为开发者提供基于 Full Stack 全栈以及 HTTP API 的一站式解决方案。 接着,serverless.com CEO Austen Collins 讲述了新版本 Serverless Framework 的价值和目标,他希望能帮企业在仅有很少的开发和运维人员的情况下管理大型的线上系统,并提到 serverless 将和腾讯云一起为中国开发者提供最佳的 serverless 开发者体验以及基础架构。 第三位分享嘉宾,来自 serverless.com 中国区研发的负责人 Ke Huang 老师,Ke