Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.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 如何使用nodeJS访问本地存储?_Node.js_Local Storage_Backend - Fatal编程技术网

Node.js 如何使用nodeJS访问本地存储?

Node.js 如何使用nodeJS访问本地存储?,node.js,local-storage,backend,Node.js,Local Storage,Backend,我有一个简单的nodeJS应用程序,它解析一个youtube URL,该URL存储用户的观看历史,并允许他们将视频作为书签。我将手表历史记录和书签存储在localStorage中 我需要在nodeJS中提供两个路由来列出当前的历史记录,并将URL保存到历史记录表中 我没有后端经验,但已经设法使用nodeJS创建了应用程序。欢迎提出任何建议 相关代码: //parse youtube url and change iframe src function loadVideo(videoURL){

我有一个简单的nodeJS应用程序,它解析一个youtube URL,该URL存储用户的观看历史,并允许他们将视频作为书签。我将手表历史记录和书签存储在localStorage中
我需要在nodeJS中提供两个路由来列出当前的历史记录,并将URL保存到历史记录表中
我没有后端经验,但已经设法使用nodeJS创建了应用程序。欢迎提出任何建议

相关代码:

//parse youtube url and change iframe src
function loadVideo(videoURL){
    //split youtube url and get ID 
    var videoID = videoURL.split("v=")[1];
    //change iframe src
    videoSource = `https://www.youtube.com/embed/${videoID}`;
    videoPlayer.src = videoSource;
    logHistory(videoSource)
}

//create div element
function logHistory(videoSource){
    var newHistory = document.createElement("li");
    newHistory.classList.add("history-item");
    newHistory.innerText = videoSource;
    historyContainer.appendChild(newHistory);
    //store element in localStorage
    var historyCount = historyContainer.children.length;
    localStorage.setItem("History item "+historyCount, videoInput.value)
}

LocalStorage是一个前端概念浏览器中运行的JavaScript可以访问它。Node.js位于后端,无法直接访问本地存储。


您需要通过在前端运行的脚本来访问它,因为它可以使用Ajax请求与后端通信。

注意。此答案使用了socket.io,它不在问题中,但允许节点服务器与客户端脚本通信

我将分享一个我使用node.js[和socket.io]以及本地存储创建的应用程序的示例。正如其他人所说,这不能直接从node.js服务器完成

这段代码来自我的server.js(node.js server)文件

它向插座发送两条数据:startingPlayer和privateUsers。在本例中,startingPlayer是玩家的用户名,privateUsers是当前玩家的名称数组

在客户端脚本中,有如下函数:

socket.on('set-starting-player', function(name, privateUsers) {
    setStorage('turnIndicator', username);
    var username = getStorage('username');

    if (name === username) {
      console.log('I am the starting player. My name is ' + username);
    }

    let playerInGame = checkPrivateUsers(privateUsers);
    if (playerInGame === true) {
        updateTurnIndicator(name);
    }
});
此函数通过两种方式访问本地存储,它将数据存储到本地存储,并从本地存储获取数据。这是一个如何将数据从Node.js传递到客户端脚本并访问本地存储的示例

function setStorage(key,info) {
    localStorage.setItem(key, JSON.stringify(info));
}

function getStorage(key) {
    var item = localStorage.getItem(key);
    return JSON.parse(item);
}
值得注意的是: 我有两个javascript函数,这是我访问本地存储的方式

function setStorage(key,info) {
    localStorage.setItem(key, JSON.stringify(info));
}

function getStorage(key) {
    var item = localStorage.getItem(key);
    return JSON.parse(item);
}

如果你有问题,请告诉我。希望这能有所帮助。

您不能使用nodejs访问本地存储。它驻留在您的浏览器中