我正在尝试在 javascript 中使用 localstorage 在执行之间保存数据。这是使用它的代码
const commando = require('discord.js-commando');
roasts = localStorage.getItem("roasts").split(/\r?\n/);
class RoastMe extends commando.Command {
constructor(client){
super(client, {
name:'addroast',
group:'insult',
memberName:'addroast',
description:'Add a roast to the !roastme archive'
});
}
async run(message, args){
if(args.length==0) message.reply("That aint a roast.");
else{
roasts.push();
roasts[roasts.length-1] = args;
var save = "";
for(var i = 0; i < roasts.length; i++){
save += roasts[i] + "\n";
}
localStorage.setItem("roasts", save);
}
}
}
module.exports = RoastMe;
这是我尝试运行它时产生的错误
ReferenceError: localStorage is not defined
at Object.<anonymous>
//location of error
(/home/ubuntu/workspace/commands/insult/addinsult.js:2:1)
at Module._compile (module.js:569:30)
at Object.Module._extensions..js (module.js:580:10)
at Module.load (module.js:503:32)
at tryModuleLoad (module.js:466:12)
at Function.Module._load (module.js:458:3)
at Module.require (module.js:513:17)
at require (internal/module.js:11:18)
at /home/ubuntu/workspace/node_modules/require-all/index.js:52:46
at Array.forEach (native)
如果有更好的方法在执行之间存储数据,请告诉我。否则,你能解释一下为什么这不起作用吗?
谢谢。
编辑:发布的代码来自 addinsult.js
您在哪里定义本地存储?如果它是一个模块,您需要“需要”它。
这条线roasts = localStorage.getItem("roasts").split(/\r?\n/);
正在尝试使用名为“localStorage”的东西来做一些事情,该东西从未被定义过。
如果我没记错的话,您似乎正在尝试使用此模块:https://www.npmjs.com/package/node-localstorage我在该页面上找到了有关如何使用它的说明。
if (typeof localStorage === "undefined" || localStorage === null) {
var LocalStorage = require('node-localstorage').LocalStorage;
localStorage = new LocalStorage('./scratch');
}
localStorage.setItem('myFirstKey', 'myFirstValue');
console.log(localStorage.getItem('myFirstKey'));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)