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

yizhihongxing

下面我将为您详细介绍如何使用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日

相关文章

  • JS中队列和双端队列实现及应用详解

    JS中队列和双端队列实现及应用详解 什么是队列? 队列是指一种线性数据结构,它按照先进先出(FIFO)的原则进行排序。队列只允许在后端(称为tail)进行插入操作,在前端(称为head)进行删除操作。例如,当你在一家银行排队等待服务时,由于先来的人先获得服务的原则,所以你必须在队列中等待,直到你到达前面。当有人从银行窗口出来时,他们排在你的前面的所有人都必须…

    node js 2023年6月8日
    00
  • nodeJs链接Mysql做增删改查的简单操作

    下面我将为你详细讲解如何使用Node.js链接MySQL进行简单的增删改查操作。首先,我们需要安装mysql模块以及mysql客户端。 简单安装方法: 使用npm安装mysql模块 npm install mysql 下载并安装mysql客户端 官网下载链接:https://dev.mysql.com/downloads/mysql/ 安装完后,我们需要在N…

    node js 2023年6月8日
    00
  • node.js基于fs模块对系统文件及目录进行读写操作的方法详解

    Node.js基于fs模块对系统文件及目录进行读写操作的方法详解 Node.js提供了fs模块(File System Module),用于对系统中的文件和目录进行读写操作。通过fs模块,可以实现文件的读取、写入、读取目录等操作。 读取文件内容 使用fs模块的readFile()方法可以读取指定文件内容,并将读取的内容传递给回调函数,如下所示: const …

    node js 2023年6月8日
    00
  • 详解Node.js项目APM监控之New Relic

    详解Node.js项目APM监控之New Relic 什么是APM? APM(Application Performance Management)指的是应用程序性能管理。它是一种监控和管理应用程序性能的技术。APM有助于在开发和生产环境中管理、诊断和优化应用程序的性能,以提高用户的体验。 什么是New Relic? New Relic是一种高度智能的APM…

    node js 2023年6月8日
    00
  • golang、python、php、c++、c、java、Nodejs性能对比

    Golang、Python、PHP、C++、C、Java、Node.js性能对比 在选择一种编程语言时,性能通常是衡量其优缺点的重要标准之一。在本文中,我们将比较Golang、Python、PHP、C++、C、Java和Node.js的性能。我们将以以下方式进行比较: 编写测试脚本,测试各种语言的运行时间; 对各种语言的内存消耗进行比较; 观察并解释运行脚本…

    node js 2023年6月8日
    00
  • 原生JS发送异步数据请求

    下面是原生JS发送异步数据请求的完整攻略: 1. 创建XMLHttpRequest对象 XMLHttpRequest对象是用于向服务器发送请求和获取服务器响应的JavaScript API。我们需要先创建一个XMLHttpRequest对象来处理异步请求。 let xhr = new XMLHttpRequest(); 2. 设置请求参数 向服务器发送请求需…

    node js 2023年6月8日
    00
  • Node.js中的不安全跳转如何防御详解

    下面是详细的“Node.js中的不安全跳转如何防御详解”攻略: 什么是不安全跳转攻击? 在Node.js中,如果一个应用程序使用了HTTP 307重定向并在此过程中未检查URL参数,攻击者就可以利用该应用程序进行恶意跳转到指定的网站。出于各种原因,这些恶意跳转通常都是“不安全”的,并可能导致以下问题: 用户被导航到一个钓鱼网站,诈骗个人信息; 用户被导航到安…

    node js 2023年6月8日
    00
  • Nodejs实现多文件夹文件同步

    当我们需要将一个文件夹中的文件同步到另外一个文件夹中时,我们通常使用复制操作。但是当需要将多个文件夹中的文件同步到另外一个文件夹中时,复制操作的工作量显然就会变得非常大。在这种情况下,使用Nodejs来实现多文件夹文件同步,就会变得非常方便。 下面是实现多文件夹文件同步的完整攻略: 步骤1: 导入fs模块和path模块,用来文件操作和路径解析。 const …

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