File tree Expand file tree Collapse file tree 1 file changed +25
-8
lines changed
blog/26-02-05/request-url-to-absolute-filename/ex Expand file tree Collapse file tree 1 file changed +25
-8
lines changed Original file line number Diff line number Diff line change 11
22/*
33 requires
4- path
4+ path,fs
55*/
66
77 resolve . df = false ;
88
9- function resolve ( url , docroot = '.' ) {
9+ async function resolve ( url , docroot = '.' ) {
1010 resolve . df && console . log ( '=== resolve v2.0 ===' ) ;
1111 resolve . df && console . log ( 'url :' , url ) ;
1212 resolve . df && console . log ( 'docroot :' , docroot ) ;
2323 } //catch
2424 if ( err ) {
2525 resolve . df && console . error ( err ) ;
26- return false ;
26+ var error = 'invalid url' ;
27+ return { error} ;
2728 }
2829
2930 url = url . slice ( 1 ) ;
3233 root += path . sep ;
3334 resolve . df && console . log ( 'root :' , root ) ;
3435 var abs = path . resolve ( docroot , url ) ;
36+ var err ;
37+ try {
38+
39+ var stat = await fs . promises . stat ( abs ) ;
40+
41+ } //try
42+ catch ( err2 ) {
43+
44+ err = err2 ;
45+
46+ } //catch
47+ if ( err ) {
48+ var error = err . toString ( ) ;
49+ return { error}
50+ }
51+ if ( stat . isDirectory ( ) ) {
52+ abs += path . sep ;
53+ }
3554 resolve . df && console . log ( 'abs :' , abs ) ;
3655
3756 if ( ! abs . startsWith ( root ) ) {
3857 resolve . df && console . log ( 'fail' ) ;
39- return false ;
58+ var error = 'resolve' ;
59+ return { error} ;
4060 }
4161
42- if ( url . endsWith ( '/' ) ) {
43- abs += '/' ;
44- }
4562 resolve . df && console . log ( 'ok' , abs ) ;
46- return abs ;
63+ return { abs} ;
4764
4865 } //resolve
4966
You can’t perform that action at this time.
0 commit comments