Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.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 关于删除/替换字符串中的符号和字符代码的问题_Javascript_Node.js_Json_Ejs - Fatal编程技术网

Javascript 关于删除/替换字符串中的符号和字符代码的问题

Javascript 关于删除/替换字符串中的符号和字符代码的问题,javascript,node.js,json,ejs,Javascript,Node.js,Json,Ejs,我想将一个对象dataO从Node.js/Express/EJS传递到客户端。 因此,在节点JS端脚本标记上: var dataO = {"first":[20000, 14000, 12000, 15000, 18000, 19000, 22000], "second":[12000, 11000, 18000, 12000, 19000, 14000, 26000]}; var dataP = JSON.stringify(dataO); app.g

我想将一个对象
dataO
从Node.js/Express/EJS传递到客户端。 因此,在节点JS端脚本标记上:

var dataO =  {"first":[20000, 14000, 12000, 15000, 18000, 19000, 22000], "second":[12000, 11000, 18000, 12000, 19000, 14000, 26000]};
var dataP = JSON.stringify(dataO);
app.get("/", function(req, res){
    res.render("index", {sStatus, dataP});
  }); 
并尝试在客户端解析
JSON.parse

var dataX =  JSON.parse("<%= dataP %>");
var-dataX=JSON.parse(“”);
但在客户端,我得到了错误:uncaughtsyntaxerror:uncontractedtoken&在JSON的位置1 而
dataP
的值是:
“{";第一";:[200001400010000180001900022000],";第二";:[120001100018000120001900026000]”
我删除了
和#34
,但仍然得到了相同的错误

大便在哪里?
谢谢,我解决了这个问题。问题是我试图将数据直接发送到客户端,这在许多方面都是错误的,我必须使用
XMLHttpRequest
,因此我仅用这个示例解决:

客户端代码:

$("#myBtn").click( function () {
    console.log("Button Pressed");
    var xhttp = new XMLHttpRequest();
    var params = "123";

    xhttp.onreadystatechange = function() {
        if (this.readyState == 4 && this.status == 200) {
            console.log(this.responseText); //And this catch sent JSON from Server.
        }
    };

    xhttp.open('POST', './data', true);
    xhttp.send(); //can sent anything from here to Server!
    
});
Nodejs端的代码是:

const express = require('express');
const app = express();
var ejs = require('ejs');
var bodyParser = require('body-parser');

app.set('views' , './views')
app.set('view engine' , 'ejs')

app.use(bodyParser.urlencoded({extended: true}));
app.set("view engine", "ejs");

var dataX =  {"first":[20000, 14000, 12000, 15000, 18000, 19000, 22000], "second":[12000, 11000, 18000, 12000, 19000, 14000, 26000]};

app.get("/", function(req, res){
    res.render("index");
  }); 

  app.post("/data", function(req,res){
    console.log("render pushed");
    res.json(dataX); //pass data to client, just remember don't make any other callbacks.
  })

  app.listen(3200 , () => console.log('Listening on port 3200'))
就这些。初学者问题;-)

标记中,不能/不应该使用html实体转义字符。你唯一需要逃离那里的就是
。另外,尽量不要发出JSON字符串(您需要对js字符串进行转义)并在客户端上解析它,而只是立即发出js对象文本。请参阅ejs文档了解如何做到这一点。