[云开发1]-快速开发一个问卷调查云应用(后端)

2024-02-01 22:48

本文主要是介绍[云开发1]-快速开发一个问卷调查云应用(后端),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

通过Sails.js开发RESTful API

阅读这篇blog大约需要5分钟

通过一个小例子MVP来学习一下Sails.js这个框架。模拟的场景需求是设计一个问卷调查。

在这里插入图片描述

后端使用Sails.js,前端通过OpenUI5来实现。

The first 90% of the code accounts for the first 90% of the development time. The remaining 10% of the code accounts for the other 90% of the development time. --Tom Cargill

创建模型

简单设计了一下,一个问卷会包含多个问题,每个用户填完后就是一个反馈。每个反馈里包含了全部的问题回答。主要包括这些数据:

  • Questionaires 问卷
  • Questions 问题
  • Feedbacks 反馈
  • Answers 每个问题的回答

依次通过sails的命令来创建api:

sails generate api Questionairessails generate api Questionssails genreate api Feedbackssails genrate api Answers

Sails.js会通过Waterline的ORM来自动根据模型定义来自动生成表和关系。而且Sails.js默认自带了一个简单的数据库实现,它是通过JSON文件保存的。

自定义API

开发一个自定义的api,可以通过action来完成。

sails generate action /feedback/create

它会自动生成文件controller/feedback/create.js,定制代码写在create.js中。这里是接口函数代码:

fn: async function (inputs) {Questionnaires.create(q);const feedback = {"fb_owner": inputs.id};const createdFeedback = await Feedbacks.create(feedback).fetch();let answers = inputs.answers.map((input) => {input.feedback = createdFeedback.id;return input;});const createdAnswers = await Answers.createEach(answers).fetch();return createdFeedback;}

自定义路由

修改config/routes.js文件,增加一行配置:

  'POST /api/v1/feedback/create' : {action: 'feedback/create'},

API测试

http://localhost:1337/api/v1/feedback/create

POST数据创建一个问卷反馈:

{
"id": 11,
"answers": [
{"question": 21,"answer": 0
}, 
{"question": 22,"answer": 1
}, 
{"question": 23,"answer": 2
}
]
}

返回数据:
states 201 ok.

后台数据创建成功。

{"createdAt": 1581583005224,"updatedAt": 1581583005224,"id": 9,"fb_owner": 11
}

小结

在这个例子中只是用到了Sails.js里API的一小部分功能,它是一个类似Ruby on rails的JS框架,个人感觉还是很方便的,对于原型demo开发,能够节约不少的时间。

项目代码

  • https://github.com/rangwei/cloud-blogs/tree/master/b08/arctic-db

参考阅读

  • https://sailsjs.com/documentation/concepts

这篇关于[云开发1]-快速开发一个问卷调查云应用(后端)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/668720

相关文章

SpringBoot快速接入OpenAI大模型的方法(JDK8)

《SpringBoot快速接入OpenAI大模型的方法(JDK8)》本文介绍了如何使用AI4J快速接入OpenAI大模型,并展示了如何实现流式与非流式的输出,以及对函数调用的使用,AI4J支持JDK8... 目录使用AI4J快速接入OpenAI大模型介绍AI4J-github快速使用创建SpringBoot

Android开发中gradle下载缓慢的问题级解决方法

《Android开发中gradle下载缓慢的问题级解决方法》本文介绍了解决Android开发中Gradle下载缓慢问题的几种方法,本文给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录一、网络环境优化二、Gradle版本与配置优化三、其他优化措施针对android开发中Gradle下载缓慢的问

MobaXterm远程登录工具功能与应用小结

《MobaXterm远程登录工具功能与应用小结》MobaXterm是一款功能强大的远程终端软件,主要支持SSH登录,拥有多种远程协议,实现跨平台访问,它包括多会话管理、本地命令行执行、图形化界面集成和... 目录1. 远程终端软件概述1.1 远程终端软件的定义与用途1.2 远程终端软件的关键特性2. 支持的

使用Go语言开发一个命令行文件管理工具

《使用Go语言开发一个命令行文件管理工具》这篇文章主要为大家详细介绍了如何使用Go语言开发一款命令行文件管理工具,支持批量重命名,删除,创建,移动文件,需要的小伙伴可以了解下... 目录一、工具功能一览二、核心代码解析1. 主程序结构2. 批量重命名3. 批量删除4. 创建文件/目录5. 批量移动三、如何安

Android 悬浮窗开发示例((动态权限请求 | 前台服务和通知 | 悬浮窗创建 )

《Android悬浮窗开发示例((动态权限请求|前台服务和通知|悬浮窗创建)》本文介绍了Android悬浮窗的实现效果,包括动态权限请求、前台服务和通知的使用,悬浮窗权限需要动态申请并引导... 目录一、悬浮窗 动态权限请求1、动态请求权限2、悬浮窗权限说明3、检查动态权限4、申请动态权限5、权限设置完毕后

使用Python快速实现链接转word文档

《使用Python快速实现链接转word文档》这篇文章主要为大家详细介绍了如何使用Python快速实现链接转word文档功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 演示代码展示from newspaper import Articlefrom docx import

基于Python开发PPTX压缩工具

《基于Python开发PPTX压缩工具》在日常办公中,PPT文件往往因为图片过大而导致文件体积过大,不便于传输和存储,所以本文将使用Python开发一个PPTX压缩工具,需要的可以了解下... 目录引言全部代码环境准备代码结构代码实现运行结果引言在日常办公中,PPT文件往往因为图片过大而导致文件体积过大,

5分钟获取deepseek api并搭建简易问答应用

《5分钟获取deepseekapi并搭建简易问答应用》本文主要介绍了5分钟获取deepseekapi并搭建简易问答应用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需... 目录1、获取api2、获取base_url和chat_model3、配置模型参数方法一:终端中临时将加

使用DeepSeek API 结合VSCode提升开发效率

《使用DeepSeekAPI结合VSCode提升开发效率》:本文主要介绍DeepSeekAPI与VisualStudioCode(VSCode)结合使用,以提升软件开发效率,具有一定的参考价值... 目录引言准备工作安装必要的 VSCode 扩展配置 DeepSeek API1. 创建 API 请求文件2.

JavaScript中的isTrusted属性及其应用场景详解

《JavaScript中的isTrusted属性及其应用场景详解》在现代Web开发中,JavaScript是构建交互式应用的核心语言,随着前端技术的不断发展,开发者需要处理越来越多的复杂场景,例如事件... 目录引言一、问题背景二、isTrusted 属性的来源与作用1. isTrusted 的定义2. 为