使用node.js搭建服务器

使用node搭建小型服务器(其实就是分析url然后输出文件给客户端)

最近需要完成一个课程设计,被项目经理(组长)分配写界面,但是总觉得只写前端的话缺了点什么,所以想自己写下后端玩一下。

期间还稍微纠结了一下用什么语言,本来打算正好学习一下PHP,可后来转念一想,用nodejs岂不美哉,不仅了解了后台开发,也相当于巩固了js基础,一举两得,美滋滋。

在学习node的过程中,学到了使用node实现一个服务器这一块,感觉是对前面所学模块的一个很好的总结。用到了四个基本的模块fs stream http path

代码如下:(内含蹩脚英文注释请见谅)

'use strict'

var url = require('url');
var path = require('path');
var fs = require('fs');
var http = require('http');

//get the current path
//var root = path.resolve('.');//以当前的目录为服务器的根目录
var root = path.resolve(process.argv[2] || '.');//以输入的参数作为服务器的根目录,如果没有输入参数就将当前目录作为服务器根目录
console.log('local root dir :' + root);

//create server
var server = http.createServer(function(request, response) {
    //get the path of URL
    var pathname = url.parse(request.url).pathname;
    //get the local path
    var filepath = path.join(root, pathname);

    //get the file stat and output the request file by callback function
    fs.stat(filepath, function(err, stat) {
        if(!err && stat.isFile()) {
            console.log('200' + request.url);
            response.writeHead(200);
            fs.createReadStream(filepath).pipe(response);//没有必要手动读取文件内容。由于response对象本身是一个Writable Stream,直接用pipe()方法就实现了自动读取文件内容并输出到HTTP响应。
        } else {
            console.log('404' + request.url);
            response.writeHead(404);
            response.end('404 Not Found');
        }
    });
});

server.listen(8080);
console.log('Server is running at http://127.0.0.1:8080/');

对于其中一些函数的解释:

  1. path.resolve() 路径寻航(这名字不错)

    path.resolve([from…], to)

    有个解释很有趣:相当于不断地调用系统的cd指令

    eg:

    path.resolve('foo/bar', '/tmp/file/', '..', 'a/../subfile')
    
    //相当于:
    cd foo/bar
    cd /tmp/file/
    cd ..
    cd a/../subfile
  2. path.join([path1],path[2]...) 路径合并

    将所有名称用path.seq串联起来,然后用normailze格式化

    eg:

    path.join('///foo', 'bar', '//baz/asdf', 'quux', '..');
    =>'/foo/bar/baz/asdf'

    既然提到了normalize

    那么:

    格式化路径 path.normalize(p)
    将不符合规范的路径格式化,简化开发人员中处理各种复杂的路径判断

    eg:

    path.normalize('/foo/bar//baz/asdf/quux/..');
    => '/foo/bar/baz/asdf'
  3. http.response.end()结束相应,告诉客户端所有消息已经发送。当所有要返回的内容发送完毕时,该函数必须要被调用一次。如果不调用该函数,那么客户端将会永远处于等待状态。

    使用方法:

    response.end([data], [encoding])

    data end()执行完毕后要输出的字符,如果指定了 data 的值,那就意味着在执行完 response.end() 之后,会接着执行一条 response.write(data , encoding);

    encoding 对应data的字符编码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要正确使用Node.js搭建服务器,您可以按照以下步骤进行: 1. 安装Node.js:首先,您需要在您的计算机上安装Node.js。您可以从官方网站https://nodejs.org/下载并安装适合您操作系统的版本。 2. 创建项目文件夹:在您希望存放项目的位置创建一个文件夹,并进入该文件夹。 3. 初始化项目:在命令行中,使用`npm init`命令初始化项目。这将引导您完成创建`package.json`文件的过程。在这个文件中,您可以设置项目的名称、版本和其他相关信息。 4. 安装必要的依赖:使用npm命令安装您需要的依赖。例如,如果您想要使用Express框架来搭建服务器,可以运行`npm install express`来安装Express。 5. 创建服务器文件:在项目文件夹中创建一个新的JavaScript文件,例如`server.js`。这个文件将包含用于搭建服务器的代码。 6. 编写服务器代码:在`server.js`文件中,使用合适的代码来创建和配置服务器。以下是一个简单的示例: ```javascript const express = require('express'); const app = express(); app.get('/', (req, res) => { res.send('Hello, World!'); }); app.listen(3000, () => { console.log('Server started on port 3000'); }); ``` 在这个示例中,我们使用Express框架创建了一个简单的服务器。`app.get('/')`定义了一个路由,当访问根路径时返回"Hello, World!"。`app.listen(3000)`指定服务器监听的端口为3000。 7. 启动服务器:在命令行中,进入到项目文件夹,并运行`node server.js`来启动服务器。如果一切顺利,您将看到终端输出 "Server started on port 3000"。 这就是使用Node.js搭建服务器的基本步骤。根据您的需求,您可以进一步配置和扩展服务器的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值