Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.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
Javascript 我正试图从用户输入的JSON文件中获取一些数据_Javascript_Node.js_Json - Fatal编程技术网

Javascript 我正试图从用户输入的JSON文件中获取一些数据

Javascript 我正试图从用户输入的JSON文件中获取一些数据,javascript,node.js,json,Javascript,Node.js,Json,我得到这个JSON错误,它告诉我我有一个语法错误,我不知道我在哪里犯了这个错误。我已经提供了代码,以防有帮助 var isNode= typeof module !=="undefined" var clientData; var auxClientData; var aux=[]; var k=0; if (!isNode) { var storedObjects=JSON.parse(localStorage.getItem("objects")); console.log(storedO

我得到这个JSON错误,它告诉我我有一个语法错误,我不知道我在哪里犯了这个错误。我已经提供了代码,以防有帮助

 var isNode= typeof module !=="undefined"
var clientData;
var auxClientData;
var aux=[];
var k=0;
if (!isNode)
{
var storedObjects=JSON.parse(localStorage.getItem("objects"));
console.log(storedObjects);




var ok=false;
buttonConfirm.addEventListener("click",function(){
    for(var i=0;i<inputs.length;i++)
    {
        var inputShow=inputs[i].value;
        if (inputShow!=null && inputShow!="")
                {
                    aux[k++]=inputShow; 
               }
               else
               {
                   alert("ALL THE FIELDS MUST BE COMPLETED! ");
                   ok=true;
                   break;
               }
    }
     clientData={fullName:aux[0],emailAddress:aux[1],phoneNumber:aux[2]};
    //localStorage.setItem("clientData",JSON.stringify(clientData));
   // console.log(clientData);
    if (ok==true){
        alert("THANK YOU FOR YOUR PURCHASE! CHECK YOUR E-MAIL")
    }
    console.log(JSON.parse(JSON.stringify(clientData)));
})

}
else
{
    var clientData={"fullName":aux[0],"emailAddress":aux[1],"phoneNumber":aux[2]};
    var fs=require("fs");
     auxClientData=JSON.stringify(clientData);

    fs.writeFile("clients.json",auxClientData,finished)
    function finished()
    {
        console.log("ok");
        var ok=fs.readFileSync("clients.json");
        var test=JSON.parse(ok);
        console.log(test);

    }

}
var isNode=模块类型==“未定义”
var-clientData;
var auxClientData;
var aux=[];
var k=0;
如果(!isNode)
{
var storedObjects=JSON.parse(localStorage.getItem(“对象”);
控制台日志(存储对象);
var-ok=false;
buttonConfirm.addEventListener(“单击”,函数(){

对于(var i=0;i我刚刚意识到问题是什么:

 var clientData;
 auxClientData=JSON.stringify(clientData);
else语句中的clientData从未设置,并且将未定义。因此,您需要在else语句中重新定义它。aux需要在程序的更高范围内可用,才能正常工作。您可以通过手动将clientData设置为else语句中的其他内容来确认我的假设

else
{
    var fs=require("fs");
    clientData={"fullName":aux[0],"emailAddress":aux[1],"phoneNumber":aux[2]};
     auxClientData=JSON.stringify(clientData);
    fs.writeFile("clients.json",auxClientData,finished)
    function finished()
    {
        console.log("ok");
    }
    var ok=fs.readFileSync("clients.json");
    var test=JSON.parse(ok);
    console.log(test);

}
------------------------------你的密码

var isNode = typeof module !== "undefined"
var clientData;
var auxClientData;
var aux = [];
var k = 0;

if (!isNode) {

    // INSIDE THE IF 
    var storedObjects = JSON.parse(localStorage.getItem("objects"));
    console.log(storedObjects);
    var ok = false;
    //add a listener inside the if statement for the click. 
    buttonConfirm.addEventListener("click", function () {
         // when it is clicked.
        for (var i = 0; i < inputs.length; i++) {

            var inputShow = inputs[i].value;
            if (inputShow != null && inputShow != "") {
                //POPULATE THE AUX ARRAY adding one to k each time?
                // seems weird, why is this not aux[i] = inputShow;
                aux[k++] = inputShow;
            }
            else {
                alert("ALL THE FIELDS MUST BE COMPLETED! ");
                ok = true;
                break;
            }
        }
        clientData = { fullName: aux[0], emailAddress: aux[1], phoneNumber: aux[2] };
        //localStorage.setItem("clientData",JSON.stringify(clientData));
        // console.log(clientData);
        if (ok == true) {
            alert("THANK YOU FOR YOUR PURCHASE! CHECK YOUR E-MAIL")
        }
        console.log(JSON.parse(JSON.stringify(clientData)));
    })

}
else {

    //inside the else. 
    //aux is an empty array here. so aux[0] = undefined, aux[1] = undefined etc.
    //i.e. the button hasn't been pressed to populate it at this point.
    var clientData = { "fullName": aux[0], "emailAddress": aux[1], "phoneNumber": aux[2] };
    var fs = require("fs");
    auxClientData = JSON.stringify(clientData);

    fs.writeFile("clients.json", auxClientData, finished)
    function finished() {
        console.log("ok");
        var ok = fs.readFileSync("clients.json");
        var test = JSON.parse(ok);
        console.log(test);

    }

}
var isNode=模块类型!=“未定义”
var-clientData;
var auxClientData;
var aux=[];
var k=0;
如果(!isNode){
//在IF内部
var storedObjects=JSON.parse(localStorage.getItem(“对象”);
控制台日志(存储对象);
var-ok=false;
//在单击的if语句中添加侦听器。
buttonConfirm.addEventListener(“单击”),函数(){
//当它被点击时。
对于(变量i=0;i
您的错误表明它无法解析JSON。您试图解析什么“JSON”?
localStorage.getItem(“对象”)
,以及
ok
fs.readFileSync(“clients.JSON”)
),这些值是什么?您正在尝试将“objects”项从本地存储解析为JSON。此项的值可能未格式化为正确的JSON。听起来您没有JSON。请看您正在解析的内容。console.log()是您的朋友。clientData={“fullName”:aux[0],“emailAddress”:aux[1],“phoneNumber”:aux[2]};看起来像?@NeilLocketz对象一是我用来从上一页获取数据的东西,ok只是一个变量谢谢,现在的问题是aux[0]、aux[1]和aux[2]。我无法读取未定义的属性“0”。当我为每个“aux”设置值时,我会遇到类似的情况:for(var i=0;我说,您需要检查该变量(无论它来自何处)在范围内,以便在程序的该点使用。您的问题中没有说明aux的定义位置或定义方式。我建议您使用更完整的代码详细信息更新您的问题。aux变量仅填充在按钮处理程序中的第一个if语句中,因此在尝试和在else语句中访问它。参见上文。在我创建了aux和k全局变量之后,在JSON文件中我得到了一个空的{}以便填充它。我必须在else语句中获得相同的代码吗?当使用nodeJS时,这行得通吗?