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