# ReferenceError: fetch is not defined

**URL:** <https://discourse.nodered.org/t/referenceerror-fetch-is-not-defined/30757>\
**Category:** General\
**Created:** [27 July 2020 06:03 UTC](https://discourse.nodered.org/t/referenceerror-fetch-is-not-defined/30757 "2020-07-27T06:03:28Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![oguma](https://avatars.discourse-cdn.com/v4/letter/o/ac8455/32.png) [@oguma](https://discourse.nodered.org/u/oguma)\
**Post date:** [27 July 2020 06:03 UTC](https://discourse.nodered.org/t/referenceerror-fetch-is-not-defined/30757/1 "2020-07-27T06:03:29Z")

</div>

I'm trying to use aws-sdk and aws-cognito-identity-js library with node-red-contrib-function-npm node. I have some questions.

I wrote some code and executed but occurred ReferenceError: fetch is not defined  
Do you have any suggestion?

```auto
var fetch = require("node-fetch");
global.set("fetch",fetch);

var AWS = require("aws-sdk");
var AmazonCognitoIdentity = require("amazon-cognito-identity-js");

var email = "email";
var passwd = "password";

var poolData={
    "UserPoolId": 'userpoolid',
	"ClientId": 'clientid'
}

var userPool = new AmazonCognitoIdentity.CognitoUserPool(poolData);

var authData = {
	Username : email,
	Password : passwd
};
var authDetail = new AmazonCognitoIdentity.AuthenticationDetails(authData);

var cognitoUser = new AmazonCognitoIdentity.CognitoUser(activateInfo);

cognitoUser.authenticateUser(authDetail, {
		onSuccess : function(result) {
			accessToken = result.getIdToken().getJwtToken();          
            console.log("idToken:"+accessToken);
		},
		onFailure : function(err) {
			console.log('error: ' + err);
	});

```

---

<div class="post-metadata">

**Author:** ![dceejay](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/dceejay/32/38_2.png) [@dceejay](https://discourse.nodered.org/u/dceejay)\
**Post date:** [27 July 2020 07:11 UTC](https://discourse.nodered.org/t/referenceerror-fetch-is-not-defined/30757/2 "2020-07-27T07:11:38Z")

</div>

Did you add the necessary require to your settings.js file global context?

---

<div class="post-metadata">

**Author:** ![oguma](https://avatars.discourse-cdn.com/v4/letter/o/ac8455/32.png) [@oguma](https://discourse.nodered.org/u/oguma)\
**Post date:** [27 July 2020 07:56 UTC](https://discourse.nodered.org/t/referenceerror-fetch-is-not-defined/30757/3 "2020-07-27T07:56:17Z")

</div>

Thanks to reply my topic!  
I didnt edit my setting.js file.  
Do I need to edit it even if i use node-red-contrib-function-npm node?

---

<div class="post-metadata">

**Author:** ![oguma](https://avatars.discourse-cdn.com/v4/letter/o/ac8455/32.png) [@oguma](https://discourse.nodered.org/u/oguma)\
**Post date:** [27 July 2020 08:21 UTC](https://discourse.nodered.org/t/referenceerror-fetch-is-not-defined/30757/4 "2020-07-27T08:21:21Z")

</div>

I added fetch:require("cross-fetch/polyfill"), to setting.js  
and const fetch = global.get("fetch"); to function-npm node.

I finally got idtoken.

Thanks,dceejay!

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/1X/d073cd938eafa2e558d7c2cd59003b3ef4963033.png) [@system](https://discourse.nodered.org/u/system)\
**Post date:** [10 August 2020 08:21 UTC](https://discourse.nodered.org/t/referenceerror-fetch-is-not-defined/30757/5 "2020-08-10T08:21:29Z")

</div>

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.
