资讯专栏INFORMATION COLUMN

创建一个简单的node服务器

laoLiueizo / 2789人阅读

摘要:源码地址第一步创建与访问创建可通过访问的服务器代码解释首先得依赖这个不用安装安装之后就有了所以直接依赖就可以然后使用方法创建一个未启动的服务器最后启动一个监听端口的服务器操作进入所在的文件夹输入运行文件访问能访问服务器了,但是还没给响应。

源码地址:https://github.com/chunsenye/...

第一步:创建与访问

创建可通过http://localhost:8090/访问的服务器

server.js

var http=require("http")
var server= http.createServer(function(request,response){
    console.log("someone has visited my first node server !"); 
})
server.listen(8090,function(){
    console.log("server started at http://localhost:8090  ......")
});

代码解释:
1.首先得依赖http 这个不用npm安装 安装node之后就有了 所以直接依赖就可以
2.然后使用http.createServer(callback)方法创建一个未启动的服务器
3.最后启动一个监听8090端口的服务器

操作:

1.进入server.js所在的文件夹
2.输入 node server.js 运行js文件

3.访问 http://localhost:8090/

能访问服务器了,但是还没给响应。所以左上角一直在转,显示等待localhost响应。再看看服务器:

访问一次就会多一句信息输出。

第二步:让服务器响应访问

server.js

var http=require("http")
var server= http.createServer(function(request,response){
    console.log("someone has visited my first node server !"); 
    response.write("welcome to visited my first node server !");
    response.end();
})
server.listen(8090,function(){
    console.log("server started at http://localhost:8090  ......")
});

多了两句代码:

response.write("welcome to visited my first node server !");
//response就是响应 response.write()可以理解为往响应里面写内容
response.end();
//必须要end

最后的结果就是这样

第三步:根据访问链接来判断响应内容

var http = require("http")
var server = http.createServer(function (request, response) {
    console.log("someone has visited my first node server !");
    if (request.url === "/") {
        response.write("Home Page");
    } else if (request.url === "/login") {
        response.write("Login Page");
    } else if (request.url === "/register") {
        response.write("Register Page");
    } else {
        response.write(request.url);
    }
    response.end();
})
server.listen(8090, function () {
    console.log("server started at http://localhost:8090  ......")
});

代码解释:
request.url 的值其实就是http://localhost:8090 后面的内容
默认为/ 表示主页
如果是为/login 表示登录页面
如果是为/register 表示注册页面
否则 直接响应该链接


这里只是响应了一串字符串,怎么才能响应一个页面呢

第四步:响应HTML页面

server.js

var http = require("http");
// 导入文件读写的js
var fs = require("fs");
var server = http.createServer(function (request, response) {
    console.log("someone has visited my first node server !");
    //根据访问的路径来选择响应的文件
    let filePath;
    if (request.url === "/") {
        filePath="index.html";
    } else if (request.url === "/login") {
        filePath="login.html";
    } else if (request.url === "/register") {
        filePath="register.html";
    } else {
        filePath="notfound.html";
    }
    //读取文件并写入响应内容中去
    fs.readFile(filePath,function(err,data ){
        response.write(""+data);
        //不能直接写data 是16进制的数,需要转成字符串
        //我写data.toString() 会报错
        response.end();
    }) 
})
server.listen(8090, function () {
    console.log("server started at http://localhost:8090  ......")
});

通过上面的代码就可以实现根据不同的路径响应不同的文件了

项目文件目录

执行效果

到这里就初步完成了简单的可以响应文件的服务器了,但是还不能响应图片,不能加载js文件与css文件这些我暂时也还不会,慢慢学习。

我把每天的学习代码都放在我的GitHub上了,欢迎来★

https://github.com/chunsenye/...

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/98159.html

相关文章

  • Node.js+WebSocket创建简单聊天室

    摘要:好的,这样以来我们的前期准备工作就已经完成了,下面我们来搭建聊天室对应的客户端和服务器端。 websocket简介 websocket其实HTML中新增加的内容,其本质还是一种网络通信协议,以下是websocket的一些特点: (1)因为连接在端口80(ws)或者443(wss)上创建,与HTTP使用的端口相同,几乎所有的防火墙都不会阻塞WebSocket链接 (2)因...

    cppprimer 评论0 收藏0
  • Node.js+WebSocket创建简单聊天室

    摘要:好的,这样以来我们的前期准备工作就已经完成了,下面我们来搭建聊天室对应的客户端和服务器端。 websocket简介 websocket其实HTML中新增加的内容,其本质还是一种网络通信协议,以下是websocket的一些特点: (1)因为连接在端口80(ws)或者443(wss)上创建,与HTTP使用的端口相同,几乎所有的防火墙都不会阻塞WebSocket链接 (2)因...

    Seay 评论0 收藏0
  • 几分钟阅读让你明白node.JS强大 走上web后端开发道路 (一版)

    摘要:这些特性不仅带来了大的性能提升,还减少多线程程序设计的复杂性,进而提高了开发效率。由公司建立的云计算平台率先支持了。 前言 本文章主要写给那些想了解node语言的开发,我的目标希望大家通过阅读本篇文章能够简单使用node进行开发,以及了解一些事件驱动的异步编程风格,主要分node的背景,安装配置,模块创建引用等几个方面描述 建议大家在阅读本篇文章途中 可以亲自尝试一下我所带来的小例子,...

    libxd 评论0 收藏0
  • kubernetes一些简单基础知识

    摘要:每个节点都会呗分配一些工作负载,当某个宕机是,其他上的工作负载会被自动转移到其他节点上去。节点中运行这许多的,每个里运行这一个容器和多个业务容器,其中这些业务容器共享容器的网络栈和挂在卷,方便业务容器之间的高效通信和数据交换。 service:分布式集群架构的核心 service的几个特性: 唯一的名字 拥有一个虚拟IP和端口号 具有远程服务的能力 映射到提供这种服务能力的一组容器...

    jackwang 评论0 收藏0
  • 不使用框架创建简单Node.js web应用

    摘要:不使用框架创建简单的应用需求创建一个可以上传图片的应用。自定义模块刚才我们定义了一个简单的服务。处理数据存储本地安装服务安装客户端使用命令行新建文件修改待续如何使用创建一个代理服务器的适用场景 不使用框架创建简单的Node.js web应用 需求: 创建一个可以上传图片的web应用。用户可以浏览应用,有一个文件上传的表单。选择图片上传,上传完成之后可以预览图片。上传的图片信息需要入库(...

    LeanCloud 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<