`

Node.js笔记之利用express创建静态文件HTTP服务器

 
阅读更多

在上一篇笔记中,使用node.js编写了一个可以提供访问静态文件的HTTP服务。在本篇笔记中,打算利用express这个node.js下的框架来搭建一个相同的HTTP服务。

安装express,和利用express generator 生成一个express项目的说明,就不在这里重述。在express的官网上有详细的入门介绍,可以参考:http://www.expressjs.com.cn/starter/installing.html

这里只记录一下编写的代码,作为学习和后续使用的记录。

我创建的目录结构很简单:


app.js :是主应用程序;

index.html :静态http服务器提供的默认首页;

public:文件夹,用来存放静态文件,我这里存放的是css,后面也可以把img等文件存放在这里。

 

看一下app.js的实现:

 

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

app.use(express.static('public'));

app.get('/', function (req, res) {
    // res.send('Hello World!');
    res.sendfile('index.html');
});

var server = app.listen(3000, function () {
    var host = server.address().address;
    var port = server.address().port;

    console.log('Example app listening at http://%s:%s', host, port);
});

 

 

关键的代码说明:

1、app.use(express.static('public'));

按照express官网的介绍说明,该语句是将工程目录中的public文件夹作为静态资源的文件夹。express.static(),是express提供的静态文件中间件。关于express的中间件,我理解和node.js的pipeline类似,在一个对应的请求出发时,可以通过不同的中间件进行处理。

2、

app.get('/', function (req, res) {

    // res.send('Hello World!');

    res.sendfile('index.html');

});

这里使用了express的路由功能,对http的get方法,请求路径为"/"的情况下,直接将根目录下的index.html返回。

在命令行启动app.js,在浏览器中输入地址:http://localhost:3000查看效果:


 这里,不需要输入需要访问的文件名,直接通过定义的路由实现了文件的跳转。

最后,我又做了一个实验,在public的文件夹下,创建了chunxiao.html。将上面的路由实现代码做了一下修改,路由跳转的页面为public文件夹下的chuanxiao.html。

 

app.get('/', function (req, res) {
    // res.send('Hello World!');
    res.sendfile(__dirname + '/public/chunxiao.html');
});

 将chunxiao.html的内容稍作变动,将最后一句去掉。重新运行程序,在浏览器中输入地址,查看效果:

 


 可以看到这里实际输出的就是我们修改后的chunxiao.html

 

最后,我使用express的generator生成器生成了一个新的app:myapp,该app为后续的实践作准备。

  • 大小: 119.7 KB
  • 大小: 51.9 KB
  • 大小: 47.3 KB
分享到:
评论

相关推荐

    Node.js学习笔记

    Node.js是一种基于Chrome V8引擎的JavaScript运行环境,它允许开发者在服务器端使用JavaScript进行编程,从而打破了JavaScript只能在浏览器中运行的传统。本学习笔记旨在深入解析Node.js的核心概念、特性以及常见...

    Node.js 从零开发 web server博客项目 前端晋升全栈工程师必备项目笔记及源码

    3. 编写服务器代码:新建一个名为server.js的文件,使用Node.js内置的http模块创建服务器。基本结构如下: ```javascript const http = require('http'); const port = process.env.PORT || 3000; ...

    Node基础学习笔记.rar

    Node.js是一种基于Chrome V8引擎的JavaScript运行环境,它让开发者能够在服务器端使用JavaScript编写代码,从而打破了JavaScript只能在浏览器中运行的传统。本压缩包"Node基础学习笔记.rar"包含了Node.js的基础知识...

    node.js学习笔记,包含ES模块化、express基础、jsonp模块、koa2、Mocha、MySQL操作、路.zip

    Node.js是一种基于Chrome V8引擎的JavaScript运行环境,它允许开发者在服务器端使用JavaScript进行编程。这份学习笔记涵盖了Node.js的多个重要知识点,包括ES模块化、Express框架的基础、JSONP处理、Koa2框架、Mocha...

    NodejsNode-js笔记

    Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,它让开发者可以用 JavaScript 来编写服务器端和网络应用。Node.js 使用了一个事件驱动、非阻塞 I/O 模型,使其轻量又高效,非常适合处理大量并发连接。在...

    Node3.zip

    Node.js允许开发者使用JavaScript进行服务器端编程,创建可扩展的网络应用,如实时聊天、协作工具或者API服务器。 在学习和使用Node.js时,以下几个核心知识点是必不可少的: 1. **事件循环(Event Loop)**:Node...

    node系列学习代码与express工程参考代码.zip

    Node.js是一个基于Chrome V8引擎的JavaScript运行环境,它让开发者能够在服务器端使用JavaScript进行开发,实现了全栈JavaScript开发的可能性。Express则是Node.js中最受欢迎的Web应用框架,它简化了构建web服务器和...

    Node.js_notes:学习Node.js过程中的笔记

    Node.js是一种基于Chrome V8引擎的JavaScript运行环境,它允许开发者在服务器端使用JavaScript进行编程。这个"Node.js_notes"的压缩包很可能是某个开发者在深入学习Node.js时记录的笔记,涵盖了他在学习过程中遇到的...

    Node 之 Express 学习笔记 第二篇 Express 4x 骨架详解

    app.js 文件是项目的入口文件,用于配置 Express 服务器。它主要包括以下几个部分: * 加载 Express 模块和其他依赖模块 * 设置 views 文件夹和视图引擎 * 加载中间件,例如日志中间件、解析 json 的中间件、解析 ...

    nodejs案例

    4. **静态文件服务**:Express可以方便地设置静态文件目录,用于服务CSS、JavaScript和图片等静态资源。 在“NodeJS第7天笔记.docx”中,你可能会找到关于Node.js和Express的更深入讲解,包括如何初始化项目、安装...

    了不起的node.js读书笔记之例程分析

    Node.js是一种基于Chrome V8引擎的JavaScript运行环境,它让JavaScript得以在服务器端运行,从而打破了JavaScript只能在浏览器中执行的限制。Node.js以其高效、轻量级和非阻塞I/O模型而闻名,尤其适合实时、数据密集...

    Express_Note_Taker:Express.js笔记记录器应用程序

    本项目“Express_Note_Taker”利用Express.js的强大功能,创建了一个用于记录和管理个人笔记的应用程序。 在深入讲解这个项目之前,我们先了解一些基础概念: 1. **Node.js**: Node.js是一个开放源代码、跨平台的...

    express+mongodb笔记

    - **创建项目结构**:一个基本的Express + MongoDB项目会包含`app.js`或`index.js`作为入口文件,`models`目录存放Mongoose模型,`routes`目录处理路由,`public`目录存放静态资源。 - **连接MongoDB**:使用...

    Note-application-with-node.js

    9. **静态文件服务**:Node.js 可以轻松地提供静态文件,如 CSS、JavaScript 和图片,以支持前端的展示。 10. **前端框架**:React、Vue 或 Angular 可能用于构建用户界面,提供丰富的组件和状态管理功能。 11. **...

    Node.js-Firebase_Aeki-Notes

    Node.js是基于Chrome V8引擎的JavaScript运行环境,它允许开发者使用JavaScript进行服务器端编程,而Firebase是Google提供的一个全面的移动开发平台,提供数据库、身份验证、存储和消息推送等功能。 在"Node.js-...

    Amicronoteapplication

    "Amicronoteapplication"是一个微型笔记应用,它利用了Node.js的技术栈来构建一个轻量级的内容管理系统。Node.js是一种基于Chrome V8引擎的JavaScript运行环境,它以其高效的非阻塞I/O模型和事件驱动的特性,在Web...

    Notes-App:使用node.js创建

    【笔记应用:使用Node.js创建】 Node.js是一个基于Chrome V8引擎的JavaScript运行环境,它以其高效的非阻塞I/O模型和丰富的生态系统,使得开发者可以用JavaScript编写服务器端代码。在这个"Notes-App"项目中,我们...

    express入门笔记

    Express是基于Node.js平台的高性能Web开发框架,它简化了构建服务器端应用的过程,使得开发者可以更快速地构建可扩展的网络应用。本入门笔记将深入讲解Express的基础知识和核心特性,帮助你从零开始掌握这个强大的...

    Nodexpress:了解Node.js,Express.js和MongoDB

    提供静态文件 注意:-使用npm install Nodexpress NJS#4 2019年8月1日[ ] 路由 HTTP方法 中间件 注意:-使用npm install Nodexpress NJS#5 2019年8月2日[ https://youtu.be/2gq2WCakk1A ] 帕格-模板引擎 基本 ...

    realtime-markdown:node.js中的实时Markdown编辑器

    1. **Express框架**:在Node.js中,Express是最流行的Web应用框架,它简化了HTTP服务器的创建和路由管理。在这个实时Markdown编辑器中,Express将负责接收前端发送的Markdown文本,将其转换为HTML,并将结果返回给...

Global site tag (gtag.js) - Google Analytics