为Node.js设计了一个低代码框架,来看看吧

2022-10-1920:45:29WEB前端开发Comments1,043 views字数 2078阅读模式

为Node.js设计了一个低代码框架,来看看吧文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/28463.html

作者丨Can Mingir
译者丨仇凯
策划丨诺亚
我们创建了一个项目,它可以自动化处理Node.js中的数据和逻辑,从而有效减少代码工作量。
低代码框架Nucleoid在底层声明性运行时环境中使用,并通过重新渲染非常相似的JavaScript代码在图中建立连接,并最终保存JavaScript状态,因此它不需要外部数据库。

特性

  • 让开发人员在AI的帮助下构建API(大量的图)

  • 在底层声明性运行时环境中使用

  • 运行时环境内置有数据存储

Hello World

> npm i nucleoidjs
安装后,通过Express.js启动或运行代码。
const nucleoid = require("nucleoidjs");const app = nucleoid();class User {  constructor(name) {    this.name = name;  }}// ? This is it!app.post("/users", () => {  new User("Daphne");});app.listen(3000);
差不多就是这样,多亏了运行时环境中的AI,能且仅能在AI的帮助下,才能在没有外部数据库的情况下将对象持久化。
为Node.js设计了一个低代码框架,来看看吧

理论

在运行时中运用声明式编程,能够实现在同一进程中对数据进行管理。
换句话说,该项目的主要目标是在同一运行时中管理数据和逻辑,同时,我们还可以将数据流/导出数据存储在类似NoSQL一样的外部数据库中。
为Node.js设计了一个低代码框架,来看看吧

CRUD

为Node.js设计了一个低代码框架,来看看吧

快速设置

const nucleoid = require("nucleoidjs"); // npm install nucleoidjsconst app = nucleoid();

左右滑动查看完整代码文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/28463.html

为Node.js设计了一个低代码框架,来看看吧

Create

首先,从创建用户类和用户对象开始。
class User {constructor(name) {this.name = name;}}nucleoid.register(User);app.post("/users", (req) => {const name = req.body.name;return new User(name);});
不需要外部数据库的原因是Nucleoid运行时管理和存储JavaScript状态。每当有语句在运行时环境运行的时候,Nucleoid运行时都会调整AI图并将其存储在运行时管理的fs中。
为Node.js设计了一个低代码框架,来看看吧

Read

app.get("/users/:id", (req) => {const id = req.params.id;return User[id];});
当有User这样的类注册时,运行时会为其实例创建快捷方式数组,可以查询或使用实例的id(var name)以在后续访问类。或者,也可以这样做User.find(user => user.id === id)
为Node.js设计了一个低代码框架,来看看吧

Update & Delete

app.post("/users/:id", (req) => {const id = req.params.id;const name = req.body.name;const user = User[id];if (user) {user.name = name;return user;}});app.delete("/users/:id", (req) => {const id = req.params.id;delete User[id];})
与上面的示例类似,它使用原生JavaScript,运行时重新渲染和管理JavaScript状态。此外,还可以在JavaScript中编写一些业务逻辑。例如,如果想对用户名进行限制,可以这样写 if (user.name.length < 3) { throws "INVALID_USER" }。
为Node.js设计了一个低代码框架,来看看吧

Query

nucleoidjs包还打开了一个终端通道来运行SQL之类的语句

为Node.js设计了一个低代码框架,来看看吧文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/28463.html

为Node.js设计了一个低代码框架,来看看吧文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/28463.html

工作原理

nucleoid.run(() => {var a = 1;var b = a + 2;var c = b + 3;});
当变量被定义为 var a = 1时,运行时会做三件事情。首先,它将var a放在图中,并在因变量之间建立联系。

为Node.js设计了一个低代码框架,来看看吧文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/28463.html

变量图
其次,使用新值更新状态,以使其生效。

为Node.js设计了一个低代码框架,来看看吧状态表文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/28463.html

但是,由于变量会在图中被追踪,因此实际执行情况是不同的。
state.a = 1;state.b = state.a + 2;state.c = state.b + 3;
最后将语句存储在运行时管理的fs中。
为Node.js设计了一个低代码框架,来看看吧

OpenAPI与Nucleoid IDE集成

我们还在构建一个在线的OpenAPI编辑器,它有助于通过用户界面构建完全相同的API。它专为OpenAPI集成而设计,并且还连接到CodeSandbox,以便能够轻松地在沙箱中运行项目。

为Node.js设计了一个低代码框架,来看看吧文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/28463.html

IDE截图
多亏了声明式编程,我们有了一种全新的数据和逻辑方法。

原文链接:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/28463.html

https://hackernoon.com/nucleoid-a-low-code-framework-for-nodejs文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/28463.html

仇凯,51CTO社区编辑,北京宅急送快运股份有限公司信息安全工程师。
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/28463.html
  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/gcs/28463.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定