Я следую учебнику по стеку MEAN, но он немного стар, и некоторые из методов, которые использует автор, устарели. Он использует sendfile(), и я изменил его на sendFile(), потому что сервер давал мне предупреждения о том, что sendfile() устарел. Новый sendFile() говорит, что он принимает абсолютный путь, а не относительный. У меня была конечная точка, которая работала:dirname против предоставления корневого пути для sendFile() Node.js
app.get('/', function (req, res){
res.sendFile(__dirname + 'layouts/posts.html')
})
на сервере, но теперь мы побив все конечные точки из в контроллеры. Тока (отношение) структура файла выглядит следующим образом:
/controllers/static.js
/layouts/posts.html
учебник говорит конечная точка в/контроллеры должно выглядеть так:
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') Я получаю ошибку «путь должен быть абсолютным или указать root для res.sendFile», и когда я пытаюсь добавить __dirname или путь из корня сервера, я получаю ENOENT ... ../controllers/somethingItried/posts.html. Может кто-нибудь объяснить лучший способ исправить это и что сервер рассматривает абсолютный путь здесь? Мои попытки сделать путь от корня не удалось:
../layouts/posts.html
, а также предложения с этой страницы:
node.js TypeError: path must be absolute or specify root to res.sendFile [failed to parse JSON]