Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >AppengineJS:JavaScript到GAE

AppengineJS:JavaScript到GAE

作者头像
bill_bisheng
发布于 2018-01-05 08:33:09
发布于 2018-01-05 08:33:09
2K0
举报

尽管Google没有为App Engine平台开发JavaScript SDK,但是一个名为AppengineJS的GAE Python SDK的新端口可以为GAE构建应用程序,这些应用程序是用所有web开发人员都熟悉的语言编写的。该端口在App Engine Java之上使用Rhino(JavaScript的JVM实现),但是该API基于App Engine Python,因为它是JS之类的脚本语言。

在本周的博客中,项目开发人员之一George Moschovitis说,他的项目最近引起了很大的兴趣,他对读者的评论有几个回答。他说,如果你已经知道Python或者Java,那么你应该坚持那些由Google支持的SDK。 App Engine Python文档应该可以有效地用于JavaScript SDK。

AppengineJS文档解释说,他们使用JavaScript编码约定:

像“thisisa_name”这样的Python名称被转换为JavaScript名称,如“thisIsAName”。此外,所有delete()函数都被重命名为.remove()函数,以避免与delete关键字发生冲突(DELETE()别名也被提供,但不建议使用,将来可能会被弃用)。

对于GAE数据存储,支持Python ext/db api,但是api经过了稍微修改,以便与JavaScript更兼容:

代码语言:txt
AI代码解释
复制
var db = require("google/appengine/ext/db");

var Category = db.Model("Category", {
    label: new db.StringProperty(),
    category: new db.ReferenceProperty({referenceClass: Category})
});

var c = new Category({keyName: "news", label: News"});
c.put();
var key = ...
var c1 = Category.get(key);
var c2 = Category.getByKeyName("news");
var categories = Category.all().fetch(3);
...
var comments = Comment.all().ancestor(article).order("-created").withCursor(cursor).fetch(10);

下面是与Blobstore有关的AppengineJS文档的示例:

格式:

代码语言:txt
AI代码解释
复制
var blobstore = require("google/appengine/api/blobstore");

exports.GET = function(env) {
    return {data: {
        uploadURL: blobstore.createUploadUrl("/test")
    }}
}

<form action="{uploadURL}" method="POST" enctype="multipart/form-data">
    <p>
        <input type="file" name="file" />
    </p>
    <p>       
        <button type="submit">Upload</button>
    </p>
</form>

上传:

代码语言:txt
AI代码解释
复制
var blobstore = require("google/appengine/api/blobstore");

exports.GET = function(env) {
    return {data: {
        uploadURL: blobstore.createUploadUrl("/save")
    }}
}

保存:

代码语言:txt
AI代码解释
复制
var blobstore = require("google/appengine/api/blobstore");

exports.POST = function(env) {
    var blobs = blobstore.getUploadedBlobs(env);

    return {
        status : 303,
        headers : {
            "Location": "/serve?key=" + blobs.file.toString()
        }
    };     
}

服务:

代码语言:txt
AI代码解释
复制
var blobstore = require("google/appengine/api/blobstore");

exports.GET = function(env) {
    var params = new Request(env).GET();
    return blobstore.serve(params.key, env);
}

AppengineJS文档中还介绍了URL获取,图像,电子邮件,Memcache缓存,用户,任务队列,XMPP,表单,Quato配额和OAuth协议。库还在开发中,但它现在确实可用。以下是Python API转换级别的细分:

    •google / appengine / api / memcache:90%(可用)

    •google / appengine / api / urlfetch:80%(可用)

    •google / appengine / api / mail:80%(可用)

    •google / appengine / api / images:60%(可用)

    •google / appengine / api / users:90%(可用)

    •google / appengine / api / labs / taskqueue:80%(可用)

    •google/ appengine / ext / db:80%(可用,期望较小的API更改)

    •google / appengine / ext / db / forms:60%(可用,期望API更改)

    •google / appengine / api / xmpp:80%(可用)

    •google / appengine / ext / blobstore:50%(可用)

    •google / appengine / api / oauth:90%(未测试)

你可以在GitHub下载AppengineJS。该SDK是Nitro Ecosystem的一部分,并跟踪CommonJS小组的最新进展。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
jxa快速入门,Javascript已加入AppleScript全家桶
因为工作环境基本是以跨平台为主,所以纯mac本地化的AppleScript一直关注是不够的,前几天找资料发现AppleScript也在迅速的进步着,目前已经对Javascript做了比较好的支持------当然早就支持,现在只是感觉上更好了。这项技术的全称是JavaScript for Automation,算一项比较新的技术,简称JXA。 本博不是学术研究性的,因此完全从实用出发,力求给出自己的实用性见解而不是长篇大论引用官方文字。这里给出我总结的几个特点: 脱离脚本编辑器Script Editor运
俺踏月色而来
2018/06/20
2.4K0
2012年08月22日 Go生态洞察:App Engine 1.7.1的Go语言更新
🐾 大家好,猫头虎博主来啦!今天我们要聊聊Go语言在Google App Engine 1.7.1版本中的最新动态。对于热衷于最新技术动态的你来说,这些更新可能是改善你的Go应用程序的关键。本文将深入分析这些更新,并提供实用的示例和技巧。如果你在寻找“Go App Engine 1.7.1更新”或“Go语言云端部署”的信息,那么你来对地方了!
猫头虎
2024/04/09
1200
2012年08月22日 Go生态洞察:App Engine 1.7.1的Go语言更新
2011年05月10日 Go生态洞察:Go与Google App Engine的结合
喵,猫头虎博主今天要带你探索Go语言与Google App Engine(GAE)的结合。🔍 在Google I/O发布会上,Go被宣布为GAE的下一个实验性特性。这不仅是Go在云服务平台的一大步,也为想要轻松部署web应用的开发者提供了新的可能。加入我,让我们一起了解Go如何在GAE上激发潜力,将应用推向云端!
猫头虎
2024/04/09
1490
2011年05月10日 Go生态洞察:Go与Google App Engine的结合
主流 PaaS 平台架构:谷歌GAE、AEB、Cloud Foundry、Heroku
公有 PaaS 平台并没有达成共识,没有统一应用的 PaaS 服务 API,因此不便于应用在各平台之间移植。谷歌、亚马逊与微软三大巨头在 PaaS 领域分庭对立,在强大的技术实力与基础资源的支撑下,构建了与自身文化相对应的公有云 PaaS 平台。相对于三大巨头,于2007 年起家的 Heroku,正是由于看到了大平台厂商对应用代码的“侵入性”,以及对开发人员的“绑架”,因而独辟蹊径地开发了一套可移植的 PaaS 平台。
博文视点Broadview
2020/06/11
6.7K0
Node.js学习笔记(三)——Node.js开发Web后台服务
Express 是一个简洁而灵活的 node.js Web应用框架, 提供了一系列强大特性帮助你创建各种 Web 应用,和丰富的 HTTP 工具。 使用 Express 可以快速地搭建一个完整功能的网站。使用Node.js作为AngularJS开发Web服务器的最佳方式是使用Express模块。
张果
2022/09/28
8.1K0
Node.js学习笔记(三)——Node.js开发Web后台服务
Dart服务器端 mojito包 原
就像它的名字一样,Mojito主要是糖和其他成分的混合物。 Mojito故意在几个shelf包上非常薄,并专注于构建应用程序的整体体验。
南郭先生
2018/08/14
1.6K0
实战丨如何制作一个完整的外卖微信小程序开发项目(已开源)
一开始项目并非基于云开发而开发的,目前考虑用云开发,因此,需要在项目中开启云开发的相关选项。
腾讯云开发TCB
2020/07/29
4.3K0
实战丨如何制作一个完整的外卖微信小程序开发项目(已开源)
我的第一个Node web程序
NodeJS的流行也带来了开发由前端转到全栈,前端不再局限于页面如何展现,用户如何操作,也设计到整个应用的架构以及业务流程。 本篇来简单的通过实例,讲述node中web开发的模式。 参考来自《Node web开发》一书。 关于node   node是基于事件的异步驱动系统,通过可扩展的方式创建网络服务器。   例如,创建一个网络服务器: var http_port = 8124; var http = require('http'); var server = http.createServer
用户1154259
2018/01/17
7670
我的第一个Node web程序
GAE Python中的 Cron Job 失败
在 Google App Engine (GAE) 上,Python 应用中的 Cron Job 失败可能有多种原因。以下是排查和解决 GAE Cron Job 失败的详细步骤:
华科云商小徐
2024/12/02
1200
GWT 与 Python App Engine 集成
将 Google Web Toolkit (GWT) 与 Python App Engine 集成可以实现强大的 Web 应用程序开发。这种集成允许你使用 GWT 的 Java 客户端技术构建丰富的用户界面,并将其与 Python 后端结合在一起,后端可以运行在 Google App Engine 上。
华科云商小徐
2024/06/06
2180
JavaScript 供应链为什么如此脆弱...
JavaScript 的强大之处在于其卓越的模块化能力,通过 npm 包管理机制,开发者可以轻易地引用并使用其他人或者组织已经编写好的开源代码,从而极大地加快了开发速度。但是,这种依赖关系的复杂性也给供应链的安全带来了巨大的挑战。
ConardLi
2023/11/27
3390
JavaScript 供应链为什么如此脆弱...
node框架express的研究0.前言1. 从入口开始1.1入口1.2 proto1.2.1 app.init方法1.2.2 app.handle方法1.2.3 每一个method的处理1.2.4
在node中,express可以说是node中的jQuery了,简单粗暴,容易上手,用过即会,那么我们来试一下怎么实现。下面我们基于4.16.2版本进行研究
lhyt
2018/10/31
1.1K0
PaaS 调研:GAE与 AWS(上)
韩伟
2017/11/09
2.5K0
PaaS 调研:GAE与 AWS(上)
众店模式与城市X选模式:消费循环分红省钱:无痛消费
“我店模式”和“城市酷选模式”直接转化为代码是一个复杂且庞大的任务,因为这涉及到多个系统模块的开发,包括前端用户界面、后端服务器逻辑、数据库设计、支付系统、区块链(如果涉及绿色积分通证化)等。以下是一个简化的、概念性的代码框架,用于指导如何开始构建这样的系统。请注意,这只是一个起点,实际开发需要详细的需求分析、设计、测试和迭代。
商业模式画卷
2024/10/11
1720
众店模式与城市X选模式:消费循环分红省钱:无痛消费
折腾Google App Engine:上传应用
作者:matrix 被围观: 2,015 次 发布时间:2013-07-26 分类:兼容并蓄 零零星星 | 无评论 »
HHTjim 部落格
2022/09/26
1K0
折腾Google App Engine:上传应用
又买了个Kindle,这次搭建个RSS-Server玩玩
之前尝试过很多 Kindle Rss 推送网站,反正都要钱才能用到所有功能,很早也看到 KindleEar 这个 repo,不过当初看教程觉得有些麻烦于是一直没去搞,为了对新的 Kindle 表示欢迎 o(
szhshp
2022/08/15
1.1K0
又买了个Kindle,这次搭建个RSS-Server玩玩
javascript开发后端程序的神器nodejs
javascript虽然一直都可以做服务端编程语言,但是它更多的是以客户端编程语言来展示在世人面前的。也许javascript自己都忘记了还可以做服务器端编程,直到2009年nodejs的横空出世。
程序那些事
2020/12/14
1.1K0
前端MVC学习总结(四)——NodeJS+MongoDB+AngularJS+Bootstrap书店示例
摘要总结:本文介绍了如何使用AngularJS04进行图书信息管理系统开发。主要包括了图书信息录入、查询、修改和删除等功能。同时,还提供了编辑图书和删除图书的接口。通过使用AngularJS04的指令和指令模块,可以方便地实现图书信息管理系统。
张果
2018/01/04
2.4K0
前端MVC学习总结(四)——NodeJS+MongoDB+AngularJS+Bootstrap书店示例
如何在下载我上传的数据时自动设置 Content-Type
在处理文件下载并设置 Content-Type 时,可以根据你所使用的后端技术(例如,Java Spring、Node.js、Django 等)进行设置。一般情况下,你可以根据文件类型或扩展名自动设置合适的 Content-Type。
华科云商小徐
2024/11/08
1870
Python Flask 优秀资源大全
版权: https://github.com/humiaozuzu/awesome-flask Awesome Flask ============= 介绍 Awesome-Flask 是由 h
若与
2018/04/25
4.3K0
Python Flask 优秀资源大全
推荐阅读
相关推荐
jxa快速入门,Javascript已加入AppleScript全家桶
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档