问题描述
我正在使用 Node.JS 和 AWS Lambda 开发 REST API,它将被 3 个应用程序访问。
我一直是一个Java
人,从来都不是一个Javascript
人。这是我第一次认真对待 Javascript 的工作。
通常,当我们在 Java 中创建 REST API 时,它会从数据库中获取数据,将其转换为 Java 类并将其作为 response
发送回来。
举个例子,假设下面是我的数据库表的结构。仔细查看名称以及相关联的 foreign keys
。
在我基于 Java 的 REST API 中,这将是类。
public class SellerSettings implements java.io.Serializable {
private Integer idsellerSettings;
private User user;
private double responseRate;
private double responseTime;
private boolean isavailable;
public SellerSettings() {
}
public Integer getIdsellerSettings() {
return this.idsellerSettings;
}
public void setIdsellerSettings(Integer idsellerSettings) {
this.idsellerSettings = idsellerSettings;
}
public User getUser() {
return this.user;
}
public void setUser(User user) {
this.user = user;
}
public double getResponseRate() {
return this.responseRate;
}
public void setResponseRate(double responseRate) {
this.responseRate = responseRate;
}
public double getResponseTime() {
return this.responseTime;
}
public void setResponseTime(double responseTime) {
this.responseTime = responseTime;
}
public boolean getIsavailable() {
return this.isavailable;
}
public void setIsavailable(boolean isavailable) {
this.isavailable = isavailable;
}
}
当从使用 Java 构建的 API 请求数据时,它将使用您在我提供的 java
类中看到的相同名称集发送回响应。由于 user
是另一个类,它实际上也会添加该字段..
无论如何,这是我现在的 node.js 代码。
const MysqL = require('MysqL');
const con = MysqL.createConnection({
host : "*******.rds.amazonaws.com",user : "****",password : "*****",port : 3306,database : "*****"
});
exports.lambdahandler = (event,context,callback) => {
// allows for using callbacks as finish/error-handlers
context.callbackWaitsForEmptyEventLoop = false;
const sql = "select * from seller_settings";
con.query(sql,function (err,result) {
if (err) throw err;
var response = {
"statusCode": 200,"headers": {
"Content-Type": "application/json"
},"body": JSON.stringify(result),"isBase64Encoded": false
};
callback(null,response)
});
};
它返回下面
[
{
"idseller_settings": 1,"iduser": 1,"response_rate": 90,"response_time": 200,"isavailable": 0
},{
"idseller_settings": 2,"response_rate": null,"response_time": 210,"isavailable": 0
}
]
它只是纯粹的表名。
作为一名 Java 人员,我研究了如何将这些名称转换为 Java 之类的名称。然后我找到了Javascript classes
。但是我确实明白 Javascript 不是面向对象的 Java
或任何类似的东西。它在 OOP 上并不完美。还要添加这些类,将值从 JSON 转换为类,然后将其发回,这对于我简单、漂亮的 Node.JS 代码来说似乎是一种过度杀戮。
作为一个 Java 人,我会问,
- 当通过 REST API 请求时,按照列名从数据库表中获取数据并将其发送回 Javascript 世界是否正常?还是应该创建类?
- 我的移动和网络应用在他们的语言中使用
classes
,在发送POST
请求时,他们很可能会发送一个 JSON,其中包含我共享的Java
类变量。从 node.js 端,这可以转换为表名吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)