Nodejs express -e ejs 没有生成layout.ejs???

Nodejs express -e ejs 没有生成layout.ejs???

资料用的是express -t ejs来生成。现在的版本已经没有-t了 所以我用的express -e ejs来生成的。可以没有生成layout.ejs

请大侠指点。

6 回复

当然可以!以下是针对你提到的问题的详细解答:

标题:Node.js Express -e EJS 没有生成 layout.ejs???

内容:

在使用 express-generator 创建一个新的 Express 应用时,如果你使用的是 express -e 命令(而不是旧版本中的 -t ejs),可能会遇到一个问题,即生成的项目中没有 layout.ejs 文件。

这是因为 express-generator 默认使用 Pug(以前称为 Jade)作为模板引擎。但是你可以手动添加 EJS 支持,并创建一个 layout.ejs 文件。

解决方法:

  1. 安装 EJS 模板引擎: 确保你已经安装了 EJS 模板引擎。如果没有,可以通过 npm 安装:

    npm install ejs --save
    
  2. 修改 app.jsapp.ts 文件: 确保你的应用配置文件中指定了 EJS 作为默认视图引擎。打开 app.js 文件并确保包含以下内容:

    const express = require('express');
    const path = require('path');
    const app = express();
    
    // 设置视图引擎为 EJS
    app.set('views', path.join(__dirname, 'views'));
    app.set('view engine', 'ejs');
    
    // 其他中间件和路由配置
    app.get('/', (req, res) => {
      res.render('index'); // 渲染 index.ejs
    });
    
    app.listen(3000, () => {
      console.log('App is running on http://localhost:3000');
    });
    
  3. 创建 layout.ejs 文件: 在 views 目录下创建一个名为 layout.ejs 的文件。例如:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title><%= title %></title>
    </head>
    <body>
        <header>
            <h1>My App</h1>
        </header>
        <main>
            <%= body %>
        </main>
        <footer>
            <p>&copy; 2023 My Company</p>
        </footer>
    </body>
    </html>
    
  4. 在子页面中使用 layout.ejs: 在其他 EJS 文件(如 index.ejs)中,你可以通过 <%- include('layout') %> 来包含 layout.ejs。例如:

    <%- include('layout', { title: 'Home Page' }) %>
    
    <h2>Welcome to the Home Page!</h2>
    

通过以上步骤,你应该能够成功创建并使用 layout.ejs 文件。希望这能解决你的问题!如果还有其他疑问,请随时提问。


解决了,

有同样问题的请参照:http://cnodejs.org/topic/5073989b01d0b801480520e4

现在的版本,应该是这样安装 express myproject -e cd myproject && npm install

epxress 3.1.0 ejs 0.8.3 2013/03/30 亲测 希望大家能少走弯路!

express_ejs_install

嗯,新版本的express3以上就把layout默认给取消了

每一个项目都需要 npm install 吗 不是之前 -g 全局安装了 express 包 没有运行 npm install 还会报 找不到express

当你使用 express -e 命令生成一个新的 Express 应用时,默认情况下不会生成 layout.ejs 文件。这是因为现代 Express 版本通常推荐使用模板继承而不是传统的 layout.ejs

不过,你可以手动创建一个 layout.ejs 文件,并配置 EJS 模板引擎来使用它。以下是如何创建和配置 layout.ejs 的步骤:

  1. 创建 layout.ejs 文件: 在项目的 views 目录下创建一个名为 layout.ejs 的文件,并添加基本的 HTML 结构。例如:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title><%= title %></title>
    </head>
    <body>
        <%- body %>
    </body>
    </html>
    
  2. 修改路由文件以使用 layout.ejs: 确保你的路由文件(如 app.jsindex.js)中的视图渲染代码使用了 layout.ejs。例如:

    const express = require('express');
    const app = express();
    
    // 设置 EJS 为模板引擎
    app.set('view engine', 'ejs');
    
    // 创建一个简单的路由
    app.get('/', (req, res) => {
        res.render('index', { title: 'Home Page' });
    });
    
    // 启动服务器
    app.listen(3000, () => {
        console.log('Server is running on port 3000');
    });
    
  3. 创建一个视图文件(例如 index.ejs: 在 views 目录下创建一个名为 index.ejs 的文件,并确保它只包含页面的主体内容。例如:

    <h1>Welcome to the Home Page</h1>
    

通过以上步骤,你可以手动创建并使用 layout.ejs 来作为应用的布局文件。这样,所有渲染的视图都会自动包含在 layout.ejs 中。

回到顶部