节点类型错误:需要根路径

时间:2017-04-03 12:03:10

标签: javascript node.js express

我正在尝试设置一个简单的节点/快速服务器,但收到以下错误

  

TypeError:需要根路径

我想知道如何修复此错误。 感谢

var nodeModulesDir = process.env.NODE_MODULES_DIR,

app.use(express.static(publicDir));
app.use("/node_modules", express.static(nodeModulesDir)); // ERROR AT THIS LINE
app.post("/uploads", onUpload);
app.delete("/uploads/:uuid", onDeleteFile);

3 个答案:

答案 0 :(得分:1)

尝试这种方式

app.use(express.static(__dirname + '/public'));

我的意思是使用__dirname来获取主根路径。

答案 1 :(得分:0)

修改.bash_profile添加导出NODE_MODULES_DIR = GGGGGGGGGGG

enter image description here

顺便说一句,别忘了重启服务器!

答案 2 :(得分:0)

TL; DR: 检查您要传递的 publicDir nodeModulesDir 变量。

Express使用模块serve-static

所以错误来自:

function serveStatic (root, options) {
  if (!root) {
    throw new TypeError('root path required')
  }
   ...
}
  

serveStatic(root,选项)

     

创建一个新的中间件功能来服务   给定根目录中的文件。要投放的文件为   通过将req.url与提供的根目录组合来确定。什么时候   找不到文件,而不是发送404响应,此模块   相反,它将调用next()转到下一个中​​间件,从而允许   用于堆叠和后备。