Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript dirname vs.为sendFile()Node.js提供根路径_Javascript_Html_Node.js - Fatal编程技术网

Javascript dirname vs.为sendFile()Node.js提供根路径

Javascript dirname vs.为sendFile()Node.js提供根路径,javascript,html,node.js,Javascript,Html,Node.js,我遵循的是关于平均堆栈的教程,但它有点旧,作者使用的一些方法不推荐使用。他使用sendfile(),我将其改为sendfile(),因为服务器警告我sendfile()已被弃用。新的sendFile()表示它采用绝对路径,而不是相对路径。我有一个有效的端点: app.get('/', function (req, res){ res.sendFile(__dirname + 'layouts/posts.html') }) 在服务器中,但现在我们将所有端点拆分为控制器。当前(相关)文件

我遵循的是关于平均堆栈的教程,但它有点旧,作者使用的一些方法不推荐使用。他使用sendfile(),我将其改为sendfile(),因为服务器警告我sendfile()已被弃用。新的sendFile()表示它采用绝对路径,而不是相对路径。我有一个有效的端点:

app.get('/', function (req, res){
    res.sendFile(__dirname + 'layouts/posts.html')
})
在服务器中,但现在我们将所有端点拆分为控制器。当前(相关)文件结构如下所示:

var router = require('express').Router()

router.get('/', function (req, res){
    res.sendFile('layouts/posts.html')
})

module.exports = router
/控制器/static.js

/layouts/posts.html

本教程说/controllers中的端点应该如下所示:

var router = require('express').Router()

router.get('/', function (req, res){
    res.sendFile('layouts/posts.html')
})

module.exports = router
使用服务器中的相应代码:

app.use(require('./controllers/static'))
使用('layouts/post.html')我会得到错误“路径必须是绝对的或指定res.sendFile的根目录”,当我尝试添加u dirname或来自服务器根目录的路径时,我会得到一个enoint…./controllers/somethingited/posts.html。有人能解释一下解决这个问题的最佳方法吗?服务器在这里考虑的绝对路径是什么?我尝试从根目录创建路径失败:

../layouts/posts.html

以及本页的建议:


将根路径添加到下一个参数“选项” 比如: