在Node.js中编程并引用位于与当前目录相关的文件时,有没有理由使用__dirname
变量而不仅仅是常规变量./
?到目前为止,我一直在我的代码中使用./并且刚刚发现它的存在__dirname
,并且基本上想要知道将./的转换为是否聪明,如果是这样,为什么这将是一个聪明的想法.
我有这个代码:
res.sendfile( '../../temp/index.html' )
Run Code Online (Sandbox Code Playgroud)
但是,它会抛出此错误:
Error: Forbidden
at SendStream.error (/Users/Oliver/Development/Personal/Reader/node_modules/express/node_modules/send/lib/send.js:145:16)
at SendStream.pipe (/Users/Oliver/Development/Personal/Reader/node_modules/express/node_modules/send/lib/send.js:307:39)
at ServerResponse.res.sendfile (/Users/Oliver/Development/Personal/Reader/node_modules/express/lib/response.js:339:8)
at exports.boot (/Users/Oliver/Development/Personal/Reader/server/config/routes.js:18:9)
at callbacks (/Users/Oliver/Development/Personal/Reader/node_modules/express/lib/router/index.js:161:37)
at param (/Users/Oliver/Development/Personal/Reader/node_modules/express/lib/router/index.js:135:11)
at pass (/Users/Oliver/Development/Personal/Reader/node_modules/express/lib/router/index.js:142:5)
at Router._dispatch (/Users/Oliver/Development/Personal/Reader/node_modules/express/lib/router/index.js:170:5)
at Object.router (/Users/Oliver/Development/Personal/Reader/node_modules/express/lib/router/index.js:33:10)
at next (/Users/Oliver/Development/Personal/Reader/node_modules/express/node_modules/connect/lib/proto.js:199:15)
Run Code Online (Sandbox Code Playgroud)
谁能告诉我为什么会这样?