NodeJS,如何使用Express 4呈现静态HTML?

Ely*_*s74 5 rendering node.js express

我需要在express 4中呈现HTML文件,我写这样的东西但是效果不好.

  app.route('/form1').get(function(req,res){
        res.sendfile('./public/danial/forms/form1.html');
  });
Run Code Online (Sandbox Code Playgroud)

此代码可以发送HTML文件,但它确切地发送HTML文件,并且不发送HTML文件需要它们的css或js文件,这是日志:

   GET /form1 304 2.743 ms - -
   GET /css/bootstrap.css 404 2.284 ms - -
   GET /css/bootstrap-theme.css 404 2.193 ms - -
   GET /css/bootstrap-switch.css 404 2.226 ms - -
   // and many others
Run Code Online (Sandbox Code Playgroud)

我需要做这样的事情:

   app.get('/', function(req, res) {
      res.render('index.html');
   });
Run Code Online (Sandbox Code Playgroud)

我该怎么解决?

(许多其他问题是快递3,我找不到答案)

Kri*_*eck 5

在没有视图引擎的情况下在 Express 4 中渲染 HTML

以下面的目录结构为例..

-> root
   -> node_modules
      -> express
      -> html
   -> public
      -> pages
         -> index.html
   -> app.js
Run Code Online (Sandbox Code Playgroud)

应用程序.js

var express = require('express');
var app     = express();
var path    = require("path");

// set static directories
app.use(express.static(path.join(__dirname, 'public')));

app.get('/', function (req, res) {
    res.sendFile(path.join(__dirname+ '/public/pages/index.html'));
});

var port = process.env.PORT || 5000;
app.listen(port);
console.log('Listening on port ',  port);
Run Code Online (Sandbox Code Playgroud)

注意:如果您收到此错误.. 那Cannot find module 'html'是因为您缺少 HTML 节点模块。npm install html从项目根目录运行命令以解决此问题。


Ely*_*s74 0

最后我自己找到了答案。我使用模板并将文件ejs扩展名更改为并渲染它们,对于所需的文件,我使用公共文件夹。HTMLejs