2017-01-17 3 views
0

Plsはこれを簡略化するのに役立ちます。私のプログラムはデータベースにたくさんのフィールドを格納しています(テーブルあたり約100個)、それは良い考えではないと思います。このコードを単純化するには? (Node JS with sqlite)IDE:Notepad ++データベース:DBブラウザ

これは私のコード

\t eacode = req.body.eacode; 
 
\t hcn = req.body.hcn; 
 
\t shsn = req.body.shsn; 
 
\t name = req.body.name; 
 
\t TENURHWS = req.body.TENURHWS; 
 
\t TENURLOT = req.body.TENURLOT; 
 
\t DWELTYPE = req.body.DWELTYPE; 
 
\t DWELTYPE_OTH = req.body.DWELTYPE_OTH; 
 
\t ROOF = req.body.ROOF; 
 
\t ROOF_OTH = req.body.ROOF_OTH; 
 
\t WALL = req.body.WALL; 
 
\t WALL_OTH = req.body.WALL_OTH; 
 
\t FLOOR = req.body.FLOOR; 
 
\t BEDROOM = req.body.BEDROOM; 
 

 
db.run("INSERT INTO form12(name,TENURHWS,TENURLOT,DWELTYPE,DWELTYPE_OTH,ROOF,ROOF_OTH,WALL,WALL_OTH,FLOOR,BEDROOM) VALUES $name,$TENURHWS,$TENURLOT,$DWELTYPE,$DWELTYPE_OTH,$ROOF,$ROOF_OTH,$WALL,$WALL_OTH,$FLOOR,$BEDROOM)", 
 
     { 
 
     $name : name, 
 
\t \t $TENURHWS : TENURHWS, 
 
\t \t $TENURLOT : TENURLOT, 
 
\t \t $DWELTYPE : DWELTYPE, 
 
\t \t $DWELTYPE_OTH : DWELTYPE_OTH, 
 
\t \t $ROOF : ROOF, 
 
\t \t $ROOF_OTH : ROOF_OTH, 
 
\t \t $WALL : WALL, 
 
\t \t $WALL_OTH : WALL_OTH, 
 
\t \t $FLOOR : FLOOR, 
 
\t \t $BEDROOM : BEDROOM 
 
     });

答えて

0

あなたが同様の結果を得るために、ループを使用することができれば、あなたのコードは、手動で各パーツを型付けするにはあまりにも長くなっている場合は、参照です。 )(

var fieldNames = req.body.keys(); 

// You could also store a manually maintained list of fields in you own list. 
// var fieldNames = ["field1", "field2", "field3", ... , "fieldn"]; 

sqlStatement = "INSERT INTO form12(" + fieldNames.join(",") + ") Values ("; 

for(var i = 0; i < fieldNames.length; i++) { 
    // Add other logic for building the values part 
    sqlStatement += "'" + req.body[fieldNames[i]] + "', "; 
} 

// Remove trailing comma 

sqlStatement += ")"; 
+0

こんにちは、私は求めることができ、私はdb.runを置く:req.bodyはキーだけを持っている場合あなたの例では、データベースに保存されるべきは、次のコードを使用することができますか? –

+0

これは 'db.run(sqlStatement);' – GantTheWanderer

+0

エラー:SQLITE_ERROR:near ")":構文エラー エラー(ネイティブ)で動作すると仮定します........これはsqlstatement行のエラーです –

関連する問題