как упростить этот код? (Node JS using sqlite) IDE: Notepad++ база данных: DB Browser

Pls помогает мне упростить это. Моя программа имеет много полей, хранящихся в базе данных (около 100 в таблице), и я думаю, что это не хорошая идея.

Это мой код

	eacode = req.body.eacode;
	hcn = req.body.hcn;
	shsn = req.body.shsn;
	name = req.body.name;
	TENURHWS = req.body.TENURHWS;
	TENURLOT = req.body.TENURLOT;
	DWELTYPE = req.body.DWELTYPE;
	DWELTYPE_OTH = req.body.DWELTYPE_OTH;
	ROOF = req.body.ROOF;
	ROOF_OTH = req.body.ROOF_OTH;
	WALL = req.body.WALL;
	WALL_OTH = req.body.WALL_OTH;
	FLOOR = req.body.FLOOR;
	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,
		$TENURHWS : TENURHWS,
		$TENURLOT : TENURLOT,
		$DWELTYPE : DWELTYPE,
		$DWELTYPE_OTH : DWELTYPE_OTH,
		$ROOF : ROOF,
		$ROOF_OTH : ROOF_OTH,
		$WALL : WALL,
		$WALL_OTH : WALL_OTH,
		$FLOOR : FLOOR,
		$BEDROOM : BEDROOM
      });

1 ответ

  1. Когда код становится слишком длинным, чтобы вручную ввести каждую часть, посмотрите, можно ли использовать цикл для достижения аналогичного результата. В вашем примере, если req.bodyесть только ключи, которые должны быть сохранены в базе данных, можно использовать следующий код:

    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 += ")";