node+express+ejs制作简单页面上手指南

下面我将为您详细介绍如何使用node+express+ejs制作简单页面的步骤。

1. 安装node和express框架

如果你还没有安装node.js和express框架的话,你需要先从官网下载并安装Node.js并使用npm安装express框架。在命令行中输入以下命令进行安装:

npm install express --save 

2. 创建Express项目

在终端中使用以下命令创建一个名为myapp的Express项目:

express myapp

这将创建名为myapp的文件夹,并将一些初始文件(如package.json和app.js等)放在其中。

3. 安装ejs模板引擎

使用以下命令安装ejs模板引擎:

npm install ejs --save

4. 在Express中设置ejs作为模板引擎

在Express项目中,打开app.js文件并添加以下代码:

var ejs = require('ejs');
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');

这样就将ejs模板引擎设置为默认的模板引擎。

5. 创建路由和视图文件

在routes文件夹下创建一个名为index.js的文件,并添加以下代码:

var express = require('express');
var router = express.Router();

router.get('/', function(req, res, next) {
  res.render('index', { title: 'Express' });
});

module.exports = router;

这将创建一个路由,当用户访问网站的根路径时,渲染名为index.ejs的视图文件。

在views文件夹下创建一个名为index.ejs的文件,并添加以下代码:

<!DOCTYPE html>
<html>
<head>
    <title><%= title %></title>
</head>
<body>
    <h1><%= title %></h1>
    <p>Welcome to <%= title %></p>
</body>
</html>

这将创建一个简单的HTML页面,其中变量title将由Express传递给ejs模板引擎进行渲染。

6. 启动Express应用

在命令行中进入myapp目录并运行以下命令:

npm start

在浏览器中访问 http://localhost:3000/,即可看到一个简单的页面。

示例一:动态渲染视图

在之前的代码中,虽然在index视图中设置了变量title,但变量值始终是Express。在下面的示例中,我们将假设我们有一个名为users.json的数据文件,其中包含了用户数据,我们将使用该数据动态渲染视图。

在myapp文件夹下创建一个名为public的文件夹,并在其中创建一个名为user.json的文件,内容如下:

{
    "users": [
        {name: "张三", age: 20, gender: "男"},
        {name: "李四", age: 22, gender: "女"},
        {name: "王五", age: 19, gender: "男"}
    ]
}

修改index.js文件的代码:

var express = require('express');
var router = express.Router();
var fs=require('fs');
var users=JSON.parse(fs.readFileSync('./public/users.json'));

router.get('/', function(req, res, next) {
  res.render('index', { title: '用户列表',users: users.users });
});

module.exports = router;

修改index.ejs文件的代码:

<!DOCTYPE html>
<html>
<head>
    <title><%= title %></title>
</head>
<body>
    <h1><%= title %></h1>
    <table>
        <thead>
            <tr>
                <th>姓名</th>
                <th>年龄</th>
                <th>性别</th>
            </tr>
        </thead>
        <tbody>
            <% for(var i=0;i<users.length;i++){%>
            <tr>
                <td><%= users[i].name %></td>
                <td><%= users[i].age %></td>
                <td><%= users[i].gender %></td>
            </tr>
            <%} %>
        </tbody>
    </table>
</body>
</html>

运行应用,并访问http://localhost:3000/,即可看到一个动态渲染的HTML页面。

示例二:使用form表单提交数据

在另一个示例中,我们将添加一个表单,让用户可以向服务器提交数据。

将routes文件夹下的index.js文件修改为以下代码:

var express = require('express');
var router = express.Router();
var fs=require('fs');
var users=JSON.parse(fs.readFileSync('./public/users.json'));

router.get('/', function(req, res, next) {
  res.render('index', { title: '用户列表',users: users.users });
});

router.post('/adduser', function(req, res) {
    var newUser=req.body;
    users.users.push(newUser);
    fs.writeFileSync('./public/users.json',JSON.stringify(users));//将新增用户更新到user.json文件中
    res.redirect('/');
});

module.exports = router;

同时在index.ejs页面添加以下代码:

<!DOCTYPE html>
<html>
<head>
    <title><%= title %></title>
</head>
<body>
    <h1><%= title %></h1>
    <table>
        <thead>
            <tr>
                <th>姓名</th>
                <th>年龄</th>
                <th>性别</th>
            </tr>
        </thead>
        <tbody>
            <% for(var i=0;i<users.length;i++){%>
            <tr>
                <td><%= users[i].name %></td>
                <td><%= users[i].age %></td>
                <td><%= users[i].gender %></td>
            </tr>
            <%} %>
        </tbody>
    </table>

    <h2>添加用户</h2>
    <form action="/adduser" method="post">
        <p>姓名:<input type="text" name="name"></p>
        <p>年龄:<input type="text" name="age"></p>
        <p>性别:<input type="text" name="gender"></p>
        <p><input type="submit" value="提交"></p>
    </form>
</body>
</html>

此时,当用户填写表单并提交时,服务器将接收到表单数据并将其保存到users.json文件中,同时页面将重新加载,显示更新后的用户列表。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:node+express+ejs制作简单页面上手指南 - Python技术站

(0)
上一篇 2023年6月8日
下一篇 2023年6月8日

相关文章

  • 深入浅出了解Node.js Streams

    针对“深入浅出了解Node.js Streams”的完整攻略,我这里给出了以下的讲解过程: 1. 什么是Node.js Streams? 在Node.js中,Streams是一种处理流数据的抽象接口,它允许我们通过交叉逐步把数据片段以一定的速率传递到处理器中,同时避免了在一开始就将整个数据块读取到内存中,这也是 Streams 所提倡的“逐块读取、逐块处理”…

    node js 2023年6月8日
    00
  • Node.js插件的正确编写方式

    这里是“Node.js插件的正确编写方式”的完整攻略。 什么是Node.js插件? Node.js插件是用C/C++编写的二进制模块,它们使Node.js能够与不同的操作系统和其他编程语言协作。 插件的编写方式 以下是Node.js插件的正确编写方式。 步骤1:安装node-gyp node-gyp是一个Node.js本地构建工具,允许你编写C/C++插件并…

    node js 2023年6月8日
    00
  • JavaScript利用crypto模块实现加解密

    JavaScript利用crypto模块实现加解密的完整攻略,包含以下步骤: 1. 引入crypto模块 在Node.js中,使用crypto模块来实现加解密操作。可以使用以下代码引入crypto模块: const crypto = require(‘crypto’); 2. 生成密钥 在加解密过程中,需要使用密钥来实现加密和解密操作。可以使用crypto模…

    node js 2023年6月8日
    00
  • nodejs开发——express路由与中间件

    下面是关于 “Node.js 开发——Express 路由与中间件” 的完整攻略。 什么是 Express? Express 是一个基于 Node.js 平台的 Web 应用开发框架,提供了一系列强大的特性,如路由控制、中间件、模板引擎等,可以让开发者高效地构建功能丰富、易于扩展的 Web 应用。 路由 在 Express 中,路由是指根据 HTTP 请求的…

    node js 2023年6月8日
    00
  • 详解HTTPS 的原理和 NodeJS 的实现

    详解 HTTPS 的原理和 NodeJS 的实现 HTTPS 的原理 HTTPS (Hypertext Transfer Protocol Secure),是一种使用安全套接字层(SSL)或传输层安全(TLS)的加密协议,用于在互联网上安全地传输数据,确保网站的安全性。HTTPS 的原理可以简单分为以下几个步骤: 客户端向服务器发送 HTTPS 请求。与 H…

    node js 2023年6月8日
    00
  • vue导入新工程 “node_modules依赖”问题

    在Vue.js中,想要使用第三方插件或库,一般会使用npm安装插件或库,并将其导入到新的工程中。但是,在导入的过程中,可能会遇到“node_modules依赖”问题,即在项目中找不到安装的插件或库。下面是详细的攻略过程及示例说明: 1. 确认项目中是否安装了所需的依赖 在导入插件或库之前,需要先确定当前项目中是否已经安装了所需的依赖。可以打开终端,并进入项目…

    node js 2023年6月8日
    00
  • Vue中虚拟DOM的简单实现

    首先,我们需要了解一下什么是虚拟DOM。虚拟DOM是指设计思想上与实际DOM节点树一一对应的JavaScript对象树。当数据模型发生变化时,Vue.js会对新旧虚拟DOM进行比较,只对发生变化的部分进行重新渲染,这样可以大大提升渲染的效率。 在Vue中,虚拟DOM的实现分为三个部分:虚拟DOM节点对象VNode,虚拟DOM的渲染函数,和虚拟DOM的比较函数…

    node js 2023年6月8日
    00
  • NodeJS 文件夹拷贝以及删除功能

    下面是详细的NodeJS文件夹拷贝以及删除功能攻略。 文件夹拷贝 我们可以使用NodeJS中的fs模块来实现文件夹的拷贝功能。具体的实现步骤如下: 使用fs.readdir()方法来获取要拷贝的文件夹中的所有文件和子文件夹。该方法返回一个字符串数组,数组中包含了文件夹中的所有子文件夹、文件的名字; const fs = require(‘fs’); fs.r…

    node js 2023年6月8日
    00
合作推广
合作推广
分享本页
返回顶部