Fortune.js

超媒体 API 原型框架
授权协议 MIT
开发语言 JavaScript
所属分类 Web应用开发、 JSON/BSON开发包
软件类型 开源软件
地区 不详
投 递 者 松琦
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

fortune 是一个超媒体 API 原型框架,实现 JSON API 规范。fortune 具有一个模块化的持久层,里面包括了 NeDB (内联), MongoDB, MySQL, PostgresSQLite 的适配器,可以查看 引导手册 了解如何使用。

Fortune 实现了所有 JSON API 的规范,还有一些其他的特性:

  • 使用简单, Fortune 提供免费的路线控制和数据库交互,不需要用户制作管道。

  • 关联和双向关系的映射,不需要用户管理资源之间的关联关系。

  • 在编辑前或者阅览之后,自动变换资源,实现特定的应用逻辑

fortune 没有相关的授权和身份验证,你可以在你的应用中实现,可以查看样板:keystore.js

npm 安装: 

$ npm install fortune

示例代码:

import fortune from 'fortune'
import http from 'http'

const store = fortune.create()

// The `net.http` function returns a listener function which does content
// negotiation, parses headers, and maps the response to an HTTP response.
const server = http.createServer(fortune.net.http(store))

store.defineType('user', {
  name: { type: String },

  // Following and followers are inversely related (many-to-many).
  following: { link: 'user', inverse: 'followers', isArray: true },
  followers: { link: 'user', inverse: 'following', isArray: true },

  // Many-to-one relationship of user posts to post author.
  posts: { link: 'post', inverse: 'author', isArray: true }
})

store.defineType('post', {
  message: { type: String },

  // One-to-many relationship of post author to user posts.
  author: { link: 'user', inverse: 'posts' }
})

store.connect().then(() => server.listen(1337))
  • Fortune.js 详细介绍 fortune 是一个超媒体 API 原型框架,实现 JSON API 规范。fortune 具有一个模块化的持久层,里面包括了 NeDB (内联), MongoDB, MySQL, Postgres 和 SQLite 的适配器,可以查看 引导手册 了解如何使用。 Fortune 实现了所有 JSON API 的规范,还有一些其他的特性: 使用简单, Fortune

  • for in 遍历 对象 得到其 键值 包括非整数类型的名称和继承的那些原型链上面的属性也能被遍历 属性需要具有 enumerable 为什么不推荐使用for in for in 会遍历出原型上的方法 类型改变:遍历出的属性值是字符串,而不是原本类型,如数字 遍历原型:遍历的是对象的枚举属性,包括自身属性以及原型链上的属性 顺序不明:遍历顺序是对象属性的枚举顺序,并不一定按数组的下标顺序遍历 fo

  •  forEach()函数从头到尾把数组遍历一遍。有三个参数分别是:数组元素,元素的索引,数组本身(如果是一个参数就是数组元素,也就是数组的值。 var data=[1,2,3,4,5,6]; var sum=0; data.forEach(function(v){//其中的v就是数组的值 123456 sum+=v;}) document.write(sum+"<br>");//打印出来是21

  • The for...in statement is used to loop (iterate) through the elements of an array or through the properties of an object. for...in声明通过一组元素或对象属性进行循环(重复) Examples 举例 For...In statement How to use a for.

  • 处理数组类型数据时forEach方法会很方便 不废话,直接说怎么用吧: var arr=['刘翔','刘洋','陈一冰','叶诗文'] arr.forEach(function(name){   //name就是arr数组中对应的元素 });

  • 学习和记录循环语句需要注意的重要细节,深入理解js的循环语句 for(条件循环) 一般for循环的语法为: for(语句1;语句2;语句3){ 被执行的代码块; } 语句 1 在循环(代码块)开始前执行 语句 2 定义运行循环(代码块)的条件 语句 3 在循环(代码块)已被执行之后执行 干巴巴的说明有点无聊,不方便记忆,我们来做一道经典题型 以面试题级别的题型为例: // 挑战一 var

  •   Js学习随笔,有不同意见尽情发表! 前言 EcmaScript 2015 (又称ES6)提供一个全新的迭代器的概念,它允许我们在语言层面上定义一个(有限或无限的)序列。 暂时先抛开它。我们对于for循环以及它的兄弟for-in循环,都已经十分的熟悉。后者可以被用来帮助我们理解迭代器。 1 2 3 4    var  table = [2,4,6,8];    for  ( var  key 

  • <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta name="viewport" content="width=device-width, initial-scale=

  • for…in 可以用在数组,对象,字符串中,返回 arr 和 str 的索引、obj 的key等。 参考:两者区别 for … of 循环是ES6引入的新的语法,用for … of循环遍历集合。 只能用于可迭代对象,如:arr、string。遍历obj会报错,但是obj可以通过Symbol加入iterator和next() 实现可迭代性,就可以用for…of遍历了。 参考:Symbol使用 区别:

  • for…in for…in 语句以任意顺序迭代一个对象的除Symbol以外的可枚举属性,包括继承的可枚举属性。 var obj = {a:1, b:2, c:3}; for (var prop in obj) { console.log("obj." + prop + " = " + obj[prop]); } // Output: // "obj.a = 1" // "obj.b = 2

  • 一、for...of 1、特性说明 (1)常用于对数组,字符串,Set以及Map等可迭代数据的遍历 (2)可迭代的数据结构的判断方法: typeof obj[Symbol.iterator] === function,true则是 (3)需要注意一下对象不是普通对象不是可迭代的数据结构,不能使用for...of,会报错 let obj={name: 'wuyanzhⅰ'} console.log

  • 考虑到代码少简洁,我常常用forEach,在我的猜想里我觉得forEach要耗性能。今天查看了这方面的知识,以后还是多用for少用forEach(如果for能做到的话), for 循环没有任何额外的函数调用栈和上下文; forEach函数签名实际上是 array.forEach(function(currentValue, index, arr), thisValue) 它不是普通的 for 循环

  • for…in和for…of都是用来遍历属性的 for…in循环:只能获得对象的键名,不能获得键值 for…of循环:允许遍历获得键值 (es6的新方法) // 1.遍历对象的区别 function Foo() { this.name = '努力'; this.age = 18 } Foo.prototype.getName = function

 相关资料
  • 我现在正在读《实践中的Rest》一书。我无法理解以下术语超媒体,超媒体格式,超媒体控件,域应用协议。作者建议需要特定领域的超媒体格式。我很难理解这些。我在谷歌上搜索了这些术语,但没有找到正确的答案。谁能解释一下这些术语,以及为什么我们需要特定于领域的超媒体格式而不是应用程序/XML?

  • Streaming API将JSON内容作为离散事件进行读写。 JsonParser读取数据,而JsonGenerator写入数据。 它是三者中最强大的方法,具有最低的开销和最快的读/写操作。 对于XML,它是Analogus to Stax解析器。 在本文中,我们将展示使用Jackson流API来读写JSON数据。 Streaming API与令牌的概念一起使用,Json的每个细节都要谨慎处理。

  • 媒体类型允许你指定文件将如何在不同媒体呈现。该文件可以以不同的方式显示在屏幕上,在纸张上,或听觉浏览器等等。  媒体类型 一些CSS属性只设计了某些媒体。例如"voice-family"属性是专为听觉用户代理。其他一些属性可用于不同的媒体类型。例如,"font-size"属性可用于屏幕和印刷媒体,但有不同的值。屏幕和纸上的文件不同,通常需要一个更大的字体,sans - serif字体比较适合在屏幕

  • 顺便说一句,真的很好的谈话! 所有的输入都很感激!

  • 问题的核心归结为文档,但可能是我没有正确理解其中的一个或多个方面。如果有,请告诉我:-) 假设我的API中有一个或多或少通用的链接关系()来链接相关的帐户。确切的意思会随着上下文而改变,对吧? 在我的公告牌(或索引)上,我可能有一个与该关系的链接来浏览所有帐户。 在另一个资源(例如帐户组)上,它可能只链接到属于该组的帐户的特定子集。 这种关系本身似乎不是正确的地方。尤其是当您考虑到该URL的有效负

  • 媒体库相关 一.流程 1.通过调用 申请视频ID接口 获取系统分配的视频ID 2.前端JS拿到视频ID相关参数,执行上传操作 3.将视频关联到房间 二.相关接口 1.申请视频ID 地址: https://ccapi.csslcloud.net/api/v1/video/createuploadinfo 备注: 需要THQS加密请求 方法: POST/GET 请求参数 参数名称 参数类型 参数