【问题标题】:How to render html and javascript from express?如何从 express 呈现 html 和 javascript?
【发布时间】:2014-10-18 13:14:45
【问题描述】:

我有一个非常简单的 express 应用程序,它有两个路由,一个应该呈现 html,一个应该呈现 javascript 文件。理想情况下,我希望将每个文件夹放在不同的文件夹中,一个用于 html 的 ./views 文件夹和一个用于 js 的 ./assets/javascripts 文件夹。我想知道最好的方法来做到这一点?这是我目前所拥有的:

var express = require('express')
  , app     = express()
  , fs      = require('fs')

['html', 'js'].forEach(function(extension) {
  app.engine(extension, function(filePath, options, callback) {
    fs.readFile(filePath, function(err, content) {
      if (err) throw new Error(err)
      return callback(null, content.toString())
    })
  })
})

app.set('views', './views')
app.set('view engine', 'html')

app.get('/', function(req, res) {
  res.render('index')
})

app.listen(3000)

我需要这样做吗?在哪里可以找到更多信息?

【问题讨论】:

  • 你的第二条路线在哪里???而且你不需要静态javascript文件的路由!!!

标签: javascript html node.js express


【解决方案1】:

如果您只是想创建响应静态文件的路由。使用:

app.get('/', function(req, res) {
    res.sendFile(__dirname + '/path-to/your/static-file');
});

如果您只想为您的项目设置资产。你应该这样做:

app.use(express.static(__dirname + '/public'));

然后为您的资产使用专用的public 目录。

(如果这不是您要寻找的答案,请在 cmets 中问我您想要什么!)

【讨论】:

    【解决方案2】:

    对于静态 JavaScript 文件,您只需要设置您的公共资产文件夹,如下所示:

    app.use(express.static(__dirname + '/public'));
    

    我建议您进一步阅读 API 文档:http://expressjs.com/api.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多