0

我想重做我的博客,但是[function]每当我 console.log 时,我下面的代码似乎都会返回。是的,这是正确的路径,在我更新玉石之前它曾经可以工作,但现在不行了。

post.stub = jade.compile(
        fs.readFileSync(__dirname + '/blog/' + p + '/stub.jade')
)

我该如何解决这个问题,以便console.log(post.stub)将我的 :markdown 返回到玉文件中而不是[function]

提前致谢。

更新的答案:

 post.stub = jade.compile(
            fs.readFileSync(__dirname + '/blog/' + p + '/stub.jade')
        )({})
4

1 回答 1

1

这就是jade 和所有类似模板系统的工作方式。有2个步骤:

  1. 将玉文本模板转换为函数(每个模板只需要发生一次)
  2. 获取一组上下文数据,通过编译的模板函数运行它,并将呈现的字符串作为 HTML 返回(每次你有唯一的上下文数据时都会发生)

因此,如果您的模板不需要任何上下文数据,只需使用空对象调用它(可能 null/undefined 也可以正常工作):

post.stub = jade.compile(
        fs.readFileSync(__dirname + '/blog/' + p + '/stub.jade')
)({})

另请参阅jade javascript API 文档

于 2012-11-22T05:30:00.453 回答