2015-01-15 2 views
0

Я следую учебнику по стеку 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]

ответ

0

Добавление корневого пути к следующий параметр «параметры» :

res.sendFile('layouts/posts.html', {root: __dirname}); 
Смежные вопросы