Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何从localStorage获取用户ID_Node.js_Reactjs_Express_Local Storage_Next.js - Fatal编程技术网

Node.js 如何从localStorage获取用户ID

Node.js 如何从localStorage获取用户ID,node.js,reactjs,express,local-storage,next.js,Node.js,Reactjs,Express,Local Storage,Next.js,我正试图建立一个博客,在某个端点上,我只想列出由特定用户创建的所有博客,因此我将用户信息存储在本地存储中,并尝试获取相同的用户名,以便我可以将用户名发送到后端,以获得由该特定用户名发布的博客 设置cookie // get cookie export const getCookie = key => { if (process.browser) { return cookie.get(key); } }; 从“js cookie”导入cookie expo

我正试图建立一个博客,在某个端点上,我只想列出由特定用户创建的所有博客,因此我将用户信息存储在本地存储中,并尝试获取相同的用户名,以便我可以将用户名发送到后端,以获得由该特定用户名发布的博客

设置cookie

// get cookie
export const getCookie = key => {
    if (process.browser) {
        return cookie.get(key);
    }
};
从“js cookie”导入cookie

export const setCookie = (key, value) => {
    if (process.browser) {
        cookie.set(key, value, {
            expires: 1
        });
    }
};
拿饼干

// get cookie
export const getCookie = key => {
    if (process.browser) {
        return cookie.get(key);
    }
};
设置本地存储

export const setLocalStorage = (key, value) => {
    if (process.browser) {
        localStorage.setItem(key, JSON.stringify(value));
    }
};
伊萨特行动

export const isAuth = () => {
        if(process.browser ) {
            const cookieChecked = getCookie('token')
            if(cookieChecked){
                if(localStorage.getItem('user')){
                    return JSON.parse(localStorage.getItem('user'))
                }else{
                    return false;
                }
            }
        }
    }
这是我存储在本地存储器中的信息

{_id: "5ece659149421c1f18c0c756", username: "2asjvwxkq", name: "test3", email: "test3@gmail.com", role: 0}
email: "test3@gmail.com"
name: "test3"
role: 0
username: "2asjvwxkq"
_id: "5ece659149421c1f18c0c756"
我试过做
const username=isAuth()&&isAuth()。username

但它正在返回未定义的

我想将
username
作为道具发送到组件,但变量
username
正在获取未定义的值

更新
JSON.stringify(username)
为我提供用户名,但我无法将其发送到后端


我为你做的很简单。我认为问题在于
json.parse
方法。 看看我的例子

export const isAuth = () => {

    if (localStorage.getItem('user')) {
        return localStorage.getItem('user');
    } else {
        return false;
    }
}
在我的app.js中

import React from 'react';
import logo from './logo.svg';
import './App.css';
import {isAuth} from './isAuth'

function App() {
  localStorage.setItem('user', 'bahtiyar');
  const userName=isAuth();

  return (
    <div className="App">
     <div>{userName}</div>
    </div>
  );
}

export default App;
从“React”导入React;
从“/logo.svg”导入徽标;
导入“/App.css”;
从“/isAuth”导入{isAuth}
函数App(){
setItem('user','bahtiyar');
const userName=isAuth();
返回(
{userName}
);
}
导出默认应用程序;
查找结果: 试着去做

建议1

const username=isAuth()?isAuth()。用户名:“”
或在必要时使用
useffect()


建议2:

直接调用函数,而不是发送道具

isAuth()
在您首先要发送的组件内部(如果这样做不会影响任何事情),并且只是为了调试,请尝试执行
JSON.stringify(user)

如何设置本地存储中的项?如果你得到了答案,可能钥匙错了undefined@topched请参阅更新的问题,该问题没有显示您为本地存储传入的密钥。(Chrome)如果您右键单击,然后选择inspect,转到应用程序选项卡并选择左侧的本地存储,您将能够看到上面的键是什么。在代码中添加一个断点,然后查看发生了什么情况您正在浏览器或节点中运行代码吗?不,它不工作,请查看更新的问题