私はes6でノードjsに取り組んでいます。 私はフィールドが少ないテーブルを持っています。私は、クエリ構築とdb管理のためにknex jsを使用しています。 私の疑問は、req.bodyオブジェクトをes6クラスコンストラクタに送信してフィールドを設定するにはどうすればいいですか? 例req.bodyをES6でモデル化してknex jsを使用するときにデータベース列と一致させるにはどうすればよいですか? - Javascript
class User {
constructor(user_id, email, username, password, phone, first_name, last_name, created_at, created_by, updated_at, updated_by){
this.user_id = user_id;
this.email = email;
this.username = username;
this.password = password;
this.phone = phone;
this.first_name = first_name;
this.last_name = last_name;
this.created_at = created_at;
this.created_by = created_by;
this.updated_at = updated_at;
this.updated_by = updated_by;
}
get _user_id(){
return this.user_id;
}
set _user_id(user_id){
this.user_id = user_id;
}
get _email(){
return this.email;
}
set _email(email){
this.email = email;
}
get _username(){
return this.username;
}
set _username(username){
this.username = username;
}
get _password(){
return this.password;
}
set _password(password){
this.password = password;
}
get _phone(){
return this.phone;
}
set _phone(phone){
this.phone = phone;
}
get _first_name(){
return this.first_name;
}
set _first_name(first_name){
this.first_name = first_name;
}
get _last_name(){
return this.last_name;
}
set _last_name(last_name){
this.last_name = last_name;
}
get _created_at(){
return this.created_at;
}
set _created_at(created_at){
this.created_at = created_at;
}
get _created_by(){
return this.created_by;
}
set _created_by(created_by){
this.created_by = created_by;
}
get _updated_at(){
return this.updated_at;
}
set _updated_at(updated_at){
this.updated_at = updated_at;
}
get _updated_by(){
return this.updated_by;
}
set _updated_by(updated_by){
this.updated_by = updated_by;
}
}
export default User;
Javaでは、pojoオブジェクトでこれを行うことができます。 とコードの上に使用してES6でUser user = new User(arg1, arg2 ...);
を使用し、私は今let user = new User(arg1, arg2...);
は私が
knex.insert(user).then((data) => {
}, (err) =>{
});
を使用することができます。しかしES6でこのようなオブジェクトを作成するためのより良い方法があります行うことができますか?
些細になります。そのため、他のすべての追加のボディーパラメーターは新しいオブジェクトに設定されません。 –
あなたは '.insert({email:req.body.email、username:req.body.username ...})'のような必要なものをいつでも選ぶことができ、広く使われているライブラリ(lodash)を使うこともできます。ピック](https://lodash.com/docs/4.17.4#pick)のように '_.pick(req.body、['email'、 'username'、...])// => {email: 'somevalue'、username: 'value'、...} ' – coockoo