最近在做毕业设计
后台node学了没多久,在设计专门给登录做的url时发生了一些问题
这串代码,运行,并且前端请求后,前端控制台打印出了404,然后后台控制台打印出了数据,很明显登录请求的res.end(subdata.username)这行代码并没有执行,console运行后,最后运行的是res.end(‘404 not fond..’)
if(pathname === '/denglu'){
fs.readFile(hidedata+'/user.json',function(err,data){
var userdata = JSON.parse(data.toString()) //读用户总体数据
res.end(subdata.username)
console.log(userdata.user[1].username)
// for(let i = 0; i < userdata.user.length-1;i++){
// if(userdata.user[i].username===subdata.username&&userdata.user[i].password===subdata.userpassword){
// res.end(userdata.user[i])
// }
// else res.end(error)
// }
})
}
//页面请求
main = req.url;
fs.readFile(find+main,function(err,data){
if(err){res.end('404 not fond..')}
else
res.end(data)
})
我多次修改后,最后在登录请求加了return完美解决
if(pathname === '/denglu'){
fs.readFile(hidedata+'/user.json',function(err,data){
var userdata = JSON.parse(data.toString()) //读用户总体数据
for(let i = 0; i < userdata.user.length-1;i++){
if(userdata.user[i].username===subdata.username&&userdata.user[i].password===subdata.userpassword){
res.end(userdata.user[i])
}
else res.end('error')
}
})
return}
由此得出,res.end后服务器块的代码并不会终结运行,需要加入return。