Git Product home page Git Product logo

Comments (10)

delvedor avatar delvedor commented on July 26, 2024

Hi! Thank your for checking out Fastify!
Can you create a complete example with a gist?

from point-of-view.

dnohr avatar dnohr commented on July 26, 2024

Hi Tomas,

For sure, check out here:
https://gist.github.com/dnohr/de935d01dc22d5cf45dee34979dda3a1

All the EJS files are located in the same "views" folder, but resulting in the same error:
"Error: Could not find include include file."

I have tried implement the EJS include function in different ways, but can't find the right relative path. This example works fine in Express, but would for sure like to test Fastify :-)

Thanks.

from point-of-view.

delvedor avatar delvedor commented on July 26, 2024

If you are using include ejs needs a filename option.

'use strict'

const fastify = require('fastify')()
const resolve = require('path').resolve

fastify.register(require('point-of-view'), {
  engine: {
    ejs: require('ejs')
  },
  options: { // this object will be passed to ejs.compile
    filename: resolve('views')
  },
  templates: 'views'
})

fastify.get('/', (req, reply) => {
  reply.view('/index.ejs', {})
})

fastify.listen(3000, (err) => {
  if (err) throw err
  console.log(`Server up: ${fastify.server.address().port}`)
})

from point-of-view.

dnohr avatar dnohr commented on July 26, 2024

Hi again,

Unfortunately the filename within the "fastify.register" options didn't work. I couldn't print the variable in the EJS file or use it in the EJS include function.

The only way to make it work is by adding the resolved path in the "reply.view", but it's not a pretty solution. Any ideas on fixing it?

JS
reply.view('index.ejs', { filename: path.resolve('views') });

EJS
<% include(filename + '/header.ejs') %>

Thanks.

from point-of-view.

delvedor avatar delvedor commented on July 26, 2024

I have answered in your gist. In that way everything works. :)

from point-of-view.

dnohr avatar dnohr commented on July 26, 2024

Super, didn't spot it. Much better!

Thanks for solving it Tomas 👍🏻

from point-of-view.

delvedor avatar delvedor commented on July 26, 2024

You're welcome! If you have more questions or suggestions please open other issues!

from point-of-view.

smartiniOnGitHub avatar smartiniOnGitHub commented on July 26, 2024

Hi all, I spent a lot of time on the same problem ... thanks a lot for the comments in the gist.
Sorry, could you put that info even in some documentation (project README) or one of the samples ? Could be useful to many people ...
Anyway thanks a lot,
Sandro

from point-of-view.

mcollina avatar mcollina commented on July 26, 2024

Sandro, the best approach would be if you open up a PR with the doc/example you think we are missing!

from point-of-view.

smartiniOnGitHub avatar smartiniOnGitHub commented on July 26, 2024

Hi Matteo, I'll do that. Thanks for now.

from point-of-view.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.