Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.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文件获取到EJS文件?_Javascript_Node.js_Json_Api_Ejs - Fatal编程技术网

Javascript 如何将属性从JSON文件获取到EJS文件?

Javascript 如何将属性从JSON文件获取到EJS文件?,javascript,node.js,json,api,ejs,Javascript,Node.js,Json,Api,Ejs,我有一个JSON文件,用作名为data.JSON的数据库 { "car": { "quantity": 2, "price": 100 } 我在node.js上有一个名为app.js的代码 var data = fs.readFileSync("data.json"); var jData = JSON.parse(data); // console.log(jData); ////////ROUTE

我有一个JSON文件,用作名为data.JSON的数据库

{
 "car": {
 "quantity": 2,
 "price": 100
}
我在node.js上有一个名为app.js的代码

var data = fs.readFileSync("data.json");
var jData = JSON.parse(data);
// console.log(jData);
 
 
////////ROUTES///////////
app.get("/", home);

// New item create path
app.get("/new/:id/:quantity/:price?", newItem);

function newItem(req, res){
 var itemData = req.params;
 ////// shows :id as name
 var newName = itemData.id;
 ////// shows :price as price
 var newPrice = Number(itemData.price);
 var newQuantity = Number(itemData.quantity);
 var reply;
 //// Object created
 function ItemObj(quantity, price) {
  this.quantity = quantity;
  this.price = price;
 }
 ///// Assing attributes to object
 var createItem =  new ItemObj(newQuantity, newPrice);
 // print stuff
 res.send("This new " + newName + " has been added! and it costs " + 
 newPrice);
 ////// If prices is not set
 if(!newPrice){
 reply = ("price is required")
 //////////then---->
 } else {
  jData[newName] = createItem;
  var stringData = JSON.stringify(jData, null, 2);
  fs.writeFile("data.json", stringData, finished);
  function finished(err, info){
  console.log("updated");
  }
res.render("index", {jData: jData})
}
然后我有一个名为index.EJS的EJS代码,当我尝试将JSON数据库(jData)传递给EJS以显示它们的值时,我会收到一个错误,说“jData未定义”

你好,兄弟
我在哪里犯了错误?如何在index.ejs文件上显示json文件?谢谢

将JSON文件导入到需要数据的文件中,然后必须对其进行解析:

const noParsedData = { "car": { "quantity": 2, "price": 100 } }

const parsedData = JSON.parse(noParsedData)
这样做时,结果日期应该是一个对象。现在,您可以在文件中使用该对象的键和值


注意:它也适用于阵列。

以防其他人怀疑。我可以通过将jData数据库设置为node.js(app.js)中的一个变量来修复错误:

然后,我不得不在EJS文件(index.EJS)上使用stringify()修改JSON文件:

const noParsedData = { "car": { "quantity": 2, "price": 100 } }

const parsedData = JSON.parse(noParsedData)
var db = jData;
res.render("index", {exampleVar: db});
<h1> Price of item: <%= 
JSON.stringify(exampleVar["car"]["price"]) %> </h1>
Price of item: 100