Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.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 SyntaxError:JSON中位于位置1的意外标记o_Javascript_Json_Node.js_Express_Parameters - Fatal编程技术网

Javascript SyntaxError:JSON中位于位置1的意外标记o

Javascript SyntaxError:JSON中位于位置1的意外标记o,javascript,json,node.js,express,parameters,Javascript,Json,Node.js,Express,Parameters,我正在使用Express中的RESTWeb服务,我希望得到一个包含我在参数中输入的小时数的对象 var express=require('express'); var router=express.router(); /*获取主页*/ router.get('/',函数(req,res,next){ res.render('index',{title:'Express'}); }); 路由器.get('/test',函数(req,res){ var responseObject={messag

我正在使用Express中的RESTWeb服务,我希望得到一个包含我在参数中输入的小时数的对象

var express=require('express');
var router=express.router();
/*获取主页*/
router.get('/',函数(req,res,next){
res.render('index',{title:'Express'});
});
路由器.get('/test',函数(req,res){
var responseObject={messages:'OK'};
res.send(responseObject);
})
router.get('/api/conommation/:heure',函数(req,res){
var heure=req.query.heure;
var响应对象=[{
“heure”:“08”,
“大奖赛”:“0.1593”
}, {
“heure”:“09”,
“大奖赛”:“0.1593”
}, {
“heure”:“01”,
“大奖赛”:“0.1252”
}, {
“heure”:“02”,
“大奖赛”:“0.1252”
}, {
“heure”:“03”,
“大奖赛”:“0.1252”
}];
var jsonContent=JSON.parse(responseObject);
jsonContent.forEach(函数(obj){
对象forEach(函数(o){
如果(o['heure']==heure)
控制台日志(o);
});
});
res.json(jsonContent);
});

module.exports=路由器
无需
var jsonContent=JSON.parse(responseObject)因为json已经被解析

替换

var jsonContent = JSON.parse(responseObject);


出现错误是因为您试图在JS对象上而不是字符串上使用
JSON.parse
(该方法用于解析JSON字符串)


只需删除行
var jsonContent=JSON.parse(responseObject)并直接使用
responseObject

直接使用
responseObject
并移除内部foreach循环

heure=01;
var响应对象=[
{
“heure”:“08”,
“大奖赛”:“0.1593”
},
{
“heure”:“09”,
“大奖赛”:“0.1593”
},
{
“heure”:“01”,
“大奖赛”:“0.1252”
},
{
“heure”:“02”,
“大奖赛”:“0.1252”
},
{
“heure”:“03”,
“大奖赛”:“0.1252”
}
];
响应对象forEach(函数(obj){
if(obj['heure']==heure)
控制台日志(obj);

})
这是最后的代码:

var express=require('express');
var router=express.router();
/*获取主页*/
router.get('/',函数(req,res,next){
res.render('index',{title:'Express'});
});
路由器.get('/test',函数(req,res){
var responseObject={messages:'OK'};
res.send(responseObject);
})
get('/api/conommation',函数(req、res、next){
var heure=请求参数('heure');
var responseObject=[
{“heure”:“08”,
“大奖赛”:“0.1593”},
{“heure”:“09”,
“大奖赛”:“0.1593”},
{“heure”:“10”,
“大奖赛”:“0.1593”},
{“heure”:“11”,
“大奖赛”:“0.1593”},
{“heure”:“12”,
“大奖赛”:“0.1593”},
{“heure”:“13”,
“大奖赛”:“0.1593”},
{“heure”:“14”,
“大奖赛”:“0.1593”},
{“heure”:“15”,
“大奖赛”:“0.1593”},
{“heure”:“16”,
“大奖赛”:“0.1593”},
{“heure”:“17”,
“大奖赛”:“0.1593”},
{“heure”:“18”,
“大奖赛”:“0.1593”},
{“heure”:“19”,
“大奖赛”:“0.1593”},
{“heure”:“20”,
“大奖赛”:“0.1593”},
{“heure”:“21”,
“大奖赛”:“0.1593”},
{“heure”:“22”,
“大奖赛”:“0.1593”},
{“heure”:“23”,
“大奖赛”:“0.1593”},
{“heure”:“00”,
“prix”:“0.1252”},
{“heure”:“01”,
“prix”:“0.1252”},
{“heure”:“02”,
“prix”:“0.1252”},
{“heure”:“03”,
“prix”:“0.1252”},
{“heure”:“04”,
“prix”:“0.1252”},
{“heure”:“05”,
“prix”:“0.1252”},
{“heure”:“06”,
“prix”:“0.1252”},
{“heure”:“07”,
“prix”:“0.1252”},
];
响应对象forEach(函数(obj){
if(obj['heure']==heure)
res.json(obj);
其他的
下一步返回;
});
});

module.exports=路由器
可以用英语重命名变量,以便人们理解您的代码。我不得不使用谷歌翻译来学习
heure
的意思
hour
。它可以工作,但总是返回我收到的第一个项目。错误是:发送后无法设置标题。我应该向我的代码中添加什么?谢谢,我看到了这个链接,但我无法理解我添加到代码中的内容是否有效,因为当我在URL
http://localhost:3000/api/consommation/heure=13
我总是获取数组对象中的第一项。我在命令行中遇到这样一个错误:发送消息后,error不能设置标题。。我
var jsonContent =responseObject;