Javascript 将请求参数与带有node.js和express framework的JSON对象匹配
代码可以很好地处理取消注释行。 但是当我激活Javascript 将请求参数与带有node.js和express framework的JSON对象匹配,javascript,node.js,express,Javascript,Node.js,Express,代码可以很好地处理取消注释行。 但是当我激活else语句时,我每次都会得到“未找到”语句,即使req.params.code和data.airports[i].code之间存在匹配 var express=require('express'); var data=require('./data.json'); var-app=express(); 应用程序使用(express.static('public')); 应用程序集(“查看引擎”、“翡翠”); app.get('/',函数(req,r
else
语句时,我每次都会得到“未找到”语句,即使req.params.code
和data.airports[i].code
之间存在匹配
var express=require('express');
var data=require('./data.json');
var-app=express();
应用程序使用(express.static('public'));
应用程序集(“查看引擎”、“翡翠”);
app.get('/',函数(req,res){
res.render('index',{title:'startsite',message:'index.html'});
});
app.get('/de/code/:code',函数(req,res){
用于(机场数据中的var i){
if(req.params.code==data.airports[i].code){
res.render('iata-code',机场数据[i]);
/*}其他{
res.send(‘未找到’)*/
};
};
});
应用程序监听(80,函数(){
log('示例应用正在运行!');
});
您的else
在for循环中,因此每当req.params.code==data.airports[0]。code
不返回true
(第一次通过),它将返回未找到
,而不是通过下一个候选人。您发送了多个响应
这就是您收到此问题的原因
您应该使用res.write()
来发送多个响应,而不是res.send()
res.send()
将整个HTTP
响应发送到客户端,包括标题和内容
甚至结束响应
。
在那之后,你不能发送任何东西
注意:
完成循环后
如果需要,您最终可以调用res.send()
。它也不工作。请参阅我的原始帖子中的Edit2。错误:发送邮件后无法设置邮件头。
;(当我删除200
和404
状态代码时,出现错误write after end