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查找字符串功能

    浅析Node.js查找字符串功能 为什么要使用Node.js查找字符串功能? 在编程过程中,字符串是非常常见的数据类型之一。而查找字符串是编程中非常基础的操作。在Node.js中,提供了一些查找字符串的方法,能够较为方便地实现对字符串的查找、替换、截取等功能。 字符串查找方法概述 Node.js中提供了多种字符串查找方法,包括indexOf, lastInd…

    node js 2023年6月8日
    00
  • nodejs+axios爬取html出现中文乱码并解决示例

    下面是详细的攻略: 1. 前置知识 在讲解 nodejs+axios 爬取html出现中文乱码并解决示例之前,我们需要先了解以下术语和知识点: Node.js:一个基于Chrome V8引擎的JavaScript运行时,让JavaScript可以脱离浏览器运行,即在服务器端运行。 Axios:一个基于Promise的HTTP客户端,用于浏览器和Node.js…

    node js 2023年6月8日
    00
  • 详解Node.js中的Async和Await函数

    详解Node.js中的Async和Await函数攻略 前言 在Node.js中异步编程是非常常见的,通常我们使用回调函数、Promise和事件来避免阻塞I/O操作。然而这些编程模式可能导致回调地狱和难以理解的代码。为了解决这个问题,我们可以使用ES7中的Async和Await函数。 Async和Await是ES7提出的一种异步编程方案,它们提供了直接、清晰、…

    node js 2023年6月8日
    00
  • 利用NodeJS和PhantomJS抓取网站页面信息以及网站截图

    要利用 NodeJS 和 PhantomJS 抓取网站页面信息以及截图,需要经过以下步骤: 安装 NodeJS 和 PhantomJS 首先需要在本地电脑安装 NodeJS 和 PhantomJS。NodeJS 安装可以前往官网下载对应版本,PhantomJS 安装可以通过以下命令下载到本地: brew install phantomjs # 或者 npm …

    node js 2023年6月8日
    00
  • node网页分段渲染详解

    Node网页分段渲染详解 在Web开发中,网页的性能对用户体验至关重要。尤其在访问速度较慢的网络环境中,优化网页性能格外重要。本文将详细介绍如何使用Node实现网页分段渲染,并提供两个示例说明。 什么是网页分段渲染? 网页分段渲染(Paged rendering)是一种优化Web页面加载速度的技术。它只渲染页面的一部分内容,而不需要等待整个页面都加载完毕才进…

    node js 2023年6月8日
    00
  • 详解关于Angular4 ng-zorro使用过程中遇到的问题

    关于Angular4 ng-zorro使用过程中遇到的问题的详解攻略 近年来,Angular已成为前端开发中备受欢迎的框架之一,并且随着ng-zorro组件库的出现,它变得更加容易实现样式统一。然而,ng-zorro也存在一些问题需要解决,本攻略将介绍如何应对Angular4 ng-zorro使用过程中遇到的问题。 问题1:ng-bootstrap组件无法正…

    node js 2023年6月8日
    00
  • 详解Node.js模板引擎Jade入门

    详解Node.js模板引擎Jade入门 什么是模板引擎? 在使用Node.js开发Web应用时,我们需要将数据和页面内容结合,生成动态的HTML页面。模板引擎就是用来将数据和页面内容结合的工具。它可以生成HTML、XML、JSON等格式的数据,同时具有易于维护、快捷灵活、模板重用等优点。 为什么要使用模板引擎? 在服务器端动态生成网页的时候,需要对HTML文…

    node js 2023年6月8日
    00
  • NodeJs 文件系统操作模块fs使用方法详解

    NodeJs 文件系统操作模块fs使用方法详解 Node.js作为一款基于JavaScript的服务端脚本运行环境,拥有着强大的文件系统操作模块fs。fs模块提供了许多API以进行文件读、写等操作,本文将详细讲解fs模块的使用方法。 fs模块的引入 在使用fs模块之前,需要先进行引入。可以使用以下代码实现: const fs = require(‘fs’);…

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