学习node.js开发Resetful API(一)

RESETful API设计最佳实践

请求规范

请求应该包含URL、HTTP方法、请求体等。

  • URL使用名词,尽量使用复数;
  • URL使用嵌套表示关联关系,如/users/12/repos/5
  • 使用正确的方法:GET/POST/PUT/DELETE

响应规范

  • 如果是分页,应该包含当前页数和每一页的数量:分页 page=2&per_page=100
  • 状态码:2开头正确 3表示重定向 4表示客户端错误 5代表服务端错误
  • 错误处理:返回错误信息。

安全

  • HTTPS
  • 鉴权
  • 限流:在HTTP头加上了字段记录请求次数,如果超过规定的额度就会报403的错误。

安装和使用KOA

npm init
cnpm i koa --save

新建index.js

const Koa = require(‘koa‘);
const app = new Koa();
?
app.use(()=>{
  console.log("Hello world");
})
?
app.listen(3000);

运行node index.js,打开http://localhost:3000/页面显示Not Found,在终端打印了Hello world

认识中间件

修改上面的例子为下:

const Koa = require(‘koa‘);
const app = new Koa();
const test = ()=>{
    console.log("Hello world");
}
app.use(test);
app.listen(3000);

重新运行node index.js,刷新网页,结果还是一样。这里app.use()的内容就是中间件。我们可以使用多个中间件,使用多个中间件的时候我们需要使用next

const Koa = require(‘koa‘);
const app = new Koa();
?
const test1 = (ctx,next)=>{
  console.log("Hello world");
  next();
}
?
const test2 = (ctx,next)=>{
  console.log("Hello China");
  next();
}
?
app.use(test1);
app.use(test2);
?
app.listen(3000);

ctx是上下文,next执行下一个中间件。打印结果:

Hello world
Hello China

ctx的理解:ctx可以帮助你在多个中间件流转数据。

// 在test1中间件中
ctx.str = ‘Hello world‘;
// 在test2中间件中可以读取
console.log(ctx.str);

自动更新nodemon

每次修改完代码又要重新启动很影响效率。

cnpm i nodemon --save-dev

以后运行就直接nodemon+文件名

nodemon index.js

简化命令,在package.jsonscript新增命令

"start":"nodemon index.js"

运行npm start即可。

原文地址:https://www.cnblogs.com/armouy/p/12238484.html

时间: 2024-10-11 11:34:24

学习node.js开发Resetful API(一)的相关文章

Nodejs学习笔记(一)--- 简介及安装Node.js开发环境

目录 学习资料 简介 安装Node.js npm简介 开发工具 Sublime Node.js开发环境配置 扩展:安装多版本管理器 学习资料 1.深入浅出Node.js http://www.infoq.com/cn/minibooks/nodejs 2.Node.js开发指南 简介(只捡了我觉得重要的) Node.js是让Javascript脱离浏览器运行在服务器的一个平台,不是语言: Node.js采用的Javascript引擎是来自Google Chrome的V8:运行在浏览器外不用考虑头

【转】Nodejs学习笔记(一)--- 简介及安装Node.js开发环境

目录 学习资料 简介 安装Node.js npm简介 开发工具 Sublime Node.js开发环境配置 扩展:安装多版本管理器 学习资料 1.深入浅出Node.js http://www.infoq.com/cn/minibooks/nodejs 2.Node.js开发指南 简介(只捡了我觉得重要的) Node.js是让Javascript脱离浏览器运行在服务器的一个平台,不是语言: Node.js采用的Javascript引擎是来自Google Chrome的V8:运行在浏览器外不用考虑头

学习node js 之微信公众帐号接口开发 准备工作

绪:因工作需要,最近开始学习Node js,之前隐隐约约听到过node js 但没有实际见到过,只好google了:至于什么是node js,能做些什么,有多么好,或者有哪些弊端我这里就不多说了,因为我也说不来. 注:因工作系统平台是windows环境,所以这一系列开发测试都以windows系统.(win7)系统: 一.准备工作: node js 安装 1. 进入node js官网,选择INSERTALL 会下载 xxxxx 86.msi 版本的:这个版本会把node js 和npm都安装好:

学习node js 之微信公众帐号接口开发 准备工作之三

app.js文件介绍,由于也是初学,下面的内容是个人的理解,有些不对的地方请评论中指证:以注解的形式说明. //依赖组件[模块]导入 var express = require('express'); var path = require('path'); var favicon = require('static-favicon'); var logger = require('morgan'); var cookieParser = require('cookie-parser'); var

推荐近期15个 Node.js 开发工具

近来Node.js 越来月流行了,这个基于Google V8 引擎建立的平台, 用于方便地搭建响应速度快.易于扩展的网络应用.在本文中,我们列出了2015年最佳的15个 Node.js 开发工具.这些工具对于刚刚开始学习 Node.js 的新手开发者非常有帮助.如果你知道任何其他有用的 Node.js 资源,请让我们知道. 1. IO.js JavaScript的I / O是一个NPM兼容的平台,最初是基于Node.js和建立在Chrome V8运行.它的目的是提供更快和可预测的发布周期. 2.

Node.js开发入门—使用对话框ngDialog

做网站经常会遇到弹出对话框获取用户输入或弹出对话框让用户确认某个操作之类的情景,有一个基于AngularJS的扩展模块可以帮我们优雅地完成这类事情:ngDialog. ngDialog在github上提供了一个示例网页,演示了它的各种用法,在这里:https://github.com/likeastore/ngDialog/blob/master/example/index.html.ngDialog的github主页的readme也对常用的指令和服务做了较为详细的介绍,可以参考.我这篇就纯粹是

Node.js中REST API使用示例——基于云平台+云服务打造自己的在线翻译工具

做为一个程序员可能在学习技术,了解行业新动态,解决问题时经常需要阅读英文的内容:而像我这样的英文小白就只能借助翻译工具才能理解个大概:不禁经常感慨,英文对学习计算机相关知识太重要了!最近发现IBM的云平台Blumemix,并且提供语言翻译的服务,感觉不错,就拿来研究学习一下:这里就分享一下我的研究学习过程,如何使用Node.js调用REST API打造自己的在线翻译工具,并演示如何把它发布到云平台上,让每个人都可以通过网络访问使用它. 应用效果展示 您可以通过点击效果图片的链接访问它. 构建一个

用Node.js开发Windows 10物联网应用

(此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 未来10年内,物联网将会如移动互联网这样深入到我们生活的各方各面.所以微软现在对物联网进行了大量的投资,比如Windows 10就有一个单独的IoT版本.而今天推荐的文章是告诉大家如何把Node.js开发带到Windows 10 IoT中. 在月初Build大会上,微软发布了Windows 10 IoT Core Insider Preview,这个版本可以安装到树莓派2(Raspberry Pi

Node.js开发入门—语音合成示例

出于项目需要,搞了一个语音合成(TTS)的小示例,使用的是OKVoice. 我想在PC上测试,OKVoice的快速接入API可以实现我的目的,文档在这里:http://dev.okvoice.com/file.php. 直接上代码吧,okVoiceTts.js,内容如下: var http = require('http'); var fs =require('fs'); var crypto = require('crypto'); var util = require('util'); va