23 lines
		
	
	
		
			570 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			23 lines
		
	
	
		
			570 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 
								 | 
							
								import accepts from 'accepts';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								export default function fourOhFour(app) {
							 | 
						||
| 
								 | 
							
								  app.all('*', function(req, res) {
							 | 
						||
| 
								 | 
							
								    const accept = accepts(req);
							 | 
						||
| 
								 | 
							
								    const type = accept.type('html', 'json', 'text');
							 | 
						||
| 
								 | 
							
								    const { path } = req;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    if (type === 'html') {
							 | 
						||
| 
								 | 
							
								      req.flash('danger', `We couldn't find path ${ path }`);
							 | 
						||
| 
								 | 
							
								      return res.render('404', { title: '404'});
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    if (type === 'json') {
							 | 
						||
| 
								 | 
							
								      return res.status('404').json({ error: 'path not found' });
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    res.setHeader('Content-Type', 'text/plain');
							 | 
						||
| 
								 | 
							
								    return res.send('404 path not found');
							 | 
						||
| 
								 | 
							
								  });
							 | 
						||
| 
								 | 
							
								}
							 |