Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

501
Visualizações
How to use localStorage on server side in node.js?

I'm trying to access Browser localStorage from the server side. I have tried it using node-localStorage, store and store2 node libraries but nothing worked. When I checked the browser localStorage it was empty.

This my test.js

import playwright from 'playwright-core';
import response from '../token.json' assert {type: "json"};
import { LocalStorage } from "node-localstorage";
global.localStorage = new LocalStorage('./scratch');

(async () => {

    const browser = await playwright["chromium"].launch({
        headless: false,
        slowMo: 2000
    });

    const context = await browser.newContext();

    const page = await context.newPage();

    await page.goto("http://localhost:3000/trader-desktop/login");

    localStorage.setItem('token', response.token);
    localStorage.setItem('tokenType', response.tokenType);
    localStorage.setItem('tokenExpirationTime', response.tokenExpirationTime);
    localStorage.setItem('userId', response.userId);
    localStorage.setItem('realms', JSON.stringify(response.realms));
    localStorage.setItem('phone', response.phone);

    await page.goto("http://localhost:3000/trader-desktop/account-selection")

    await page.pause();
    
    await browser.close();

})();

This is my package.json file

{
    "type" : "module",
    
    "devDependencies": {
        "playwright": "1.21.1"
    },

    "dependencies": {
        "node-fetch": "^3.2.4",
        "node-localstorage": "^2.2.1",
        "store2": "^2.13.2",
        "type": "module"
    }
}

Is there a way I can work this thing out? I can't use window.localStorage because window is not defined in node.

Thanks in advance :)

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

I used this and it worked like a charm. Thanks to all your contributions.

const fs = require('fs');

const localStorage = fs.readFileSync('../localStorage.json', 'utf8')

    const deserializedStorage = JSON.parse(localStorage)
    await page.evaluate(deserializedStorage => {
        for (const key in deserializedStorage) {
            if (key === "realms") {
                localStorage.setItem(key, JSON.stringify(deserializedStorage[key]));
            }
            else {
                localStorage.setItem(key, deserializedStorage[key]);
            }
        }
    }, deserializedStorage);

Source

about 4 years ago · Juan Pablo Isaza Relatório

0

You can set localStorage items by evaluating this expresion:

await page.evaluate(
      `window.localStorage.setItem('X', 'Y')`
);
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda