# Code Node — n8n के साथ AI Automation

Source: https://www.geekswithgeeks.com/hi/n8n-ai-automation/data-code-node

> दोनों run modes में Code node में JavaScript लिखें और items सही आकार में लौटाएँ।

## दो modes

**Code** node JavaScript (या Python) चलाता है। **Run Once for All Items** mode में आप `$input.all()` से हर item पढ़ते हैं और `{ json: {...} }` की array लौटानी होती है। **Run Once for Each Item** mode में आप `$input.item` पढ़ते हैं और एक `{ json: {...} }` लौटाते हैं। Dedupe, sorting और aggregation के लिए all-items mode और सरल प्रति-record बदलावों के लिए each-item mode चुनें।

## Normalise और dedupe (all items)

मैंने यह तर्क नमूना items के साथ Node.js में चलाया। दो input rows में एक ही email था, इसलिए एक हट गई, और अंक न होने वाला amount `"abc"` `NaN` बनता है, जिसे JSON `null` छापता है।

```javascript
const seen = new Set();
const out = [];
for (const item of $input.all()) {
  const email = item.json.email.trim().toLowerCase();
  if (seen.has(email)) continue;          // drop duplicates
  seen.add(email);
  out.push({ json: {
    name: item.json.name.trim(),
    email,
    amount: Number(item.json.amount),
  }});
}
return out;
```

Output:

```
[{"json":{"name":"Asha","email":"asha@example.com","amount":1200}},
 {"json":{"name":"Ravi","email":"ravi@example.com","amount":null}}]
```

## आगे बढ़ने से पहले जाँचें

जिन rows का amount परिमित संख्या नहीं उन्हें छानने से ग़लत डेटा अगले system से बाहर रहता है। उसी नमूने पर 1 row मान्य है और 1 अस्वीकृत।

```javascript
const valid = out.filter(i => Number.isFinite(i.json.amount));
const invalid = out.length - valid.length;
return valid;   // log or route the invalid ones elsewhere
```

Output:

```
1 valid, 1 invalid
```

## सही आकार लौटाएँ

`{ json: ... }` items की जगह सादे objects लौटाना Code node की सबसे आम ग़लती है। कुछ ग़लत लगे तो node का output tab देखें और error संदेश पढ़ें; वह अपेक्षित आकार का नाम बताता है।

**Quiz:** "All items" mode में Code node को क्या लौटाना चाहिए?

- [ ] सादा string
- [ ] कुछ नहीं
- [x] json property वाले objects की array
- [ ] एक संख्या

*Answer:* json property वाले objects की array. n8n को items { json: {...} } रूप में, array के तौर पर चाहिए।
