Node.js开发手册(二)

简介: 版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。 https://blog.csdn.net/chszs/article/details/8981859 Node.js开发手册(二)作者:chszs,转载需注明。
版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。 https://blog.csdn.net/chszs/article/details/8981859

Node.js开发手册(二)

作者:chszs,转载需注明。博客主页: http://blog.csdn.net/chszs

一、静态文件服务

如果我们想把磁盘上的文件作为Web内容对外提供服务,那么怎么用Node来实现呢?答案是使用fs模块。
我们可以使用fs即filesystem模块载入文件的内容,并把内容通过createServer回调函数传递出去。提供静态文件服务是Node.js的核心基础功能,应该掌握它。

二、Demo

下面我们创建三个文件,这些文件都会由NodeJS提供静态文件服务。

1. index.html

内容如下:
<html>
    <head>
        <title>Yay Node!</title>
        <link rel="stylesheet" href="styles.css" type="text/css" />
        <script src="script.js" type="text/javascript"></script>
    </head>
    <body>
        <span id="yay">Yay!</span>
    </body>
</html>

2. script.js

内容如下:
// script.js
window.onload=function(){
    alert('Yay Node!');
};

3. styles.css

内容如下:
#yay{
    font-size: 5em;
    background: blue;
    color: yellow;
    padding: 0.5em;
}

将上面的三个文件放入content目录下。

4. 编写Node程序

创建名为server.js的脚本文件,内容如下:
var http = require('http');
var path = require('path');
var fs = require('fs');

http.createServer(function(req, res){
    var lookup = path.basename(decodeURI(req.url)) || 'index.html',
    f = 'content/' + lookup;
    fs.exists(f, function(exists){
        console.log(exists ? lookup + " is there" : lookup + " doesn't exist");
    });
}).listen(8080);

用supervisor热部署工具执行以上程序:
$ supervisor server.js

在浏览器访问地址:http://localhost:8080/foo
终端显示:
DEBUG: Starting child process with 'node server.js'
foo doesn't exist

在浏览器访问地址:http://localhost:8080/index.html
终端显示:
DEBUG: Starting child process with 'node server.js'
DEBUG: Watching directory '/home/chszs/tmp' for changes.
index.html is there

三、进阶

假定我们想让客户端知道文件的类型,可以通过扩展名进行判断。
修改server.js文件,内容为:
// server.js
var http = require('http');
var path = require('path');
var fs = require('fs');

var mimeTypes = {
    '.js': 'text/javascript',
    '.html': 'text/html',
    '.css': 'text/css'
};

http.createServer(function(req, res){
    var lookup = path.basename(decodeURI(req.url)) || 'index.html',
    f = 'content/' + lookup;
    fs.exists(f, function(exists){
        if(exists){
            fs.readFile(f, function(err, data){
                if(err){
                    res.writeHead(500);
                    res.end('Server Error!');
                    return;
                }
                var headers = {'Content-type': mimeTypes[path.extname]};
                res.writeHead(200, headers);
                res.end(data);
            });
            return;
        }
        res.writeHead(404);
        res.end();
    });
}).listen(8080);

在浏览器地址栏输入
http://localhost:8080/styles.css

http://localhost:8080/script.js
都会在网页上显示文件的内容。

在浏览器地址栏输入
http://localhost:8080/index.html
如图所示:



目录
相关文章
|
NoSQL JavaScript 数据库
Node.js开发手册(四)-Redis数据库访问
Node.js开发手册(四)-Redis数据库访问 因工作太忙,本系列的文章中断了很久,现在有机会继续了。 大家要记住,Node.js主要用于构建高性能、高可伸缩性的服务器和客户端应用,它面向的是“实时Web”。
1107 0
|
NoSQL JavaScript 数据库
Node.js开发手册(四)-Redis数据库访问
版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。 https://blog.csdn.net/chszs/article/details/17660179 Node.js开发手册(四)-Redis数据库访问 作者:chszs,转载需注明。
894 0
|
JavaScript 前端开发 网络架构
Node.js开发手册(一)
一、Node.js简介 Node.js由于其简洁性而受到广泛关注。与PHP或ASP不同,后者在Web服务器和代码间没有间隔,也不需要自定义大量的配置文件。使用Node.js,我们可以创建服务器,自定义它,在代码层交付所有的内容。
1089 0
|
JavaScript 前端开发
Node.js开发手册(二)
一、静态文件服务 如果我们想把磁盘上的文件作为Web内容对外提供服务,那么怎么用Node来实现呢?答案是使用fs模块。我们可以使用fs即filesystem模块载入文件的内容,并把内容通过createServer回调函数传递出去。
922 0
|
JavaScript 网络架构 开发工具
Node.js开发手册(一)
版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。 https://blog.csdn.net/chszs/article/details/8915944 Node.js开发手册(一) 作者:chszs,转载需注明。
1050 0
|
28天前
|
Web App开发 JavaScript 前端开发
2024年5月node.js安装(winmac系统)保姆级教程
本篇博客为2024年5月版Node.js安装教程,适用于Windows和Mac系统。作者是一名熟悉JavaScript与Vue的大一学生,分享了Node.js的基本介绍、下载链接及简单安装步骤。安装完成后,通过终端命令`node -v`验证版本即可确认安装成功。欢迎关注作者,获取更多技术文章。
28 2
2024年5月node.js安装(winmac系统)保姆级教程
|
27天前
|
存储 JavaScript 搜索推荐
Node框架的安装和配置方法
安装 Node 框架是进行 Node 开发的第一步,通过正确的安装和配置,可以为后续的开发工作提供良好的基础。在安装过程中,需要仔细阅读相关文档和提示,遇到问题及时解决,以确保安装顺利完成。
79 2
|
3月前
|
JavaScript
NodeJs的安装
文章介绍了Node.js的安装步骤和如何创建第一个Node.js应用。包括从官网下载安装包、安装过程、验证安装是否成功,以及使用Node.js监听端口构建简单服务器的示例代码。
NodeJs的安装
|
2月前
|
JavaScript 开发工具 git
已安装nodejs但是安装hexo报错
已安装nodejs但是安装hexo报错
38 2
|
2月前
|
JavaScript 算法 内存技术
如何降低node.js版本(nvm下载安装与使用)
如何降低node.js版本(nvm下载安装与使用)