NodeJs是通过官方提供的http模块来创建 web服务器的模块。通过几行简单的代码,就能轻松的手写一个web服务,从而对外提供 web 服务。

² 创建web服务基本步骤

①、导入http模块

const http = require('http')

②、创建web服务对象实例

const server = http.createServer()

③、绑定监听客户端请求事件request

server.on('request', (request, response) => {})

request: 接受客户端请求对象,它包含了与客户端相关的数据和属性

request.url      客户端请求的uri地址

request.method  客户端请求的方式 get或post

req.headers   客户端请求头信息

response:服务器对客户端的响应对象

# 设置响应头信息 ,用于响应时有中文时乱码解决处理

response.setHeader('content-type', 'text/html;charset=utf-8')

# 设置状态码

res.statusCod = 200

# 向客户端发送响应数据,并结束本次请求的处理过程

res.end('hello world')

④、启动服务

server.listen(8080, () => {

console.log('服务已启动')

})

静态资源服务器

  • 实现思路

客户端请求的每个资源uri地址,作为在本机服务器指定目录中的文件。通过相关模块进行读取文件中数据进行响应给客户端,从而实现静态服务器。

  • 实现步骤

①、导入需要的模块

const http = require('http')

const fs = require('fs')

const path = require('path')

const url = require('url')

②、使用http模块创建web服务器

const server = http.createServer()

③、将资源的请求uri地址映射为文件的存放路径

// 事件监听

server.on('request', (req, res) => {

// 得到请求的uri

let pathname = req.url

pathname = pathname === '/' ? '/index.html' : pathname

if (pathname !== '/favicon.ico') {

// 请求静态地址

let filepath = path.join(__dirname, 'public', pathname)

}

})

④、读取文件内容并响应给客户端

fs.readFile(filepath, (err, data) => {

if (err) {

res.statusCode = 500

res.end('服务器内部错误')

}else{

res.end(data)

}

})

get数据获取方式

get数据通过地址栏使用query方式进行传递的数据 例?id=1&name=zhangsan

const http = require('http');

const url = require('url');

http.createServer((req, res) => {

// 获取地址栏中 query数据

let { query } = url.parse(req.url, true);

console.log(query);

}).listen(8080)

表单数据多数为post进行提交到服务器端。

const http = require('http');

const queryString = require('querystring');

http.createServer((req, res) => {

let arr = [];

// 数据接受中

req.on('data', buffer => {

arr.push(buffer);

});

// 数据传输结束了

req.on('end', () => {

// 拼接接受到的所有数据

let buffer = Buffer.concat(arr);

let post = queryString.parse(buffer.toString())

console.log(post);

});

}).listen(8080)

Nodejs 创建web服务 静态资源服务器 get数据获取 post数据获取的更多相关文章

  1. Nodejs 创建web服务

    // 加载http服务包 var http = require("http"); // 创建服务 var server = http.createServer(requestLis ...

  2. [Node]创建静态资源服务器

    项目初始化 .gitignore cnpm i eslint -D eslint --init得到.eslintrc.js .eslintrc.js module.exports = { 'env': ...

  3. Nginx——静态资源服务器(一)

    java web的项目中,我们经常将项目部署到Tomcat或者jetty上,可以通过Tomcat或者jetty启动的服务来访问静态资源.但是随着Nginx的普及,用Nginx来作为静态资源服务器,似乎 ...

  4. NodeJS4-8静态资源服务器实战_构建cli工具

    Cli(command-line interface),中文是 命令行界面,简单来说就是可以通过命令行快速生成自己的项目模板等功能(比较熟悉的是vue-cli脚手架这些),把上述写的包做成Cli工具. ...

  5. 使用Node.js搭建静态资源服务器

    对于Node.js新手,搭建一个静态资源服务器是个不错的锻炼,从最简单的返回文件或错误开始,渐进增强,还可以逐步加深对http的理解.那就开始吧,让我们的双手沾满网络请求! Note: 当然在项目中如 ...

  6. 基于Socket创建Web服务

    基于Socket创建Web服务 为什么要使用Socket呢,我们来看下图

  7. 原生node写一个静态资源服务器

    myanywhere 用原生node做一个简易阉割版的anywhere静态资源服务器,以提升对node与http的理解. 相关知识 es6及es7语法 http的相关网络知识 响应头 缓存相关 压缩相 ...

  8. node静态资源服务器的搭建----访问本地文件夹(搭建可访问静态文件的服务器)

    我们的目标是实现一个可访问静态文件的服务器,即可以在浏览器访问文件夹和文件,通过点击来查看文件. 1.先创建一个文件夹anydoor,然后在该文件夹里npm init一个package.json文件, ...

  9. Webservices-2.C#创建web服务,及引用访问、代码访问

    注:web服务简介Webservices-1.web服务定义简介 以下均以C#语言为例 一.创建web服务(简单介绍,主要讨论客户端引用) 打开VS创建网站项目,在网站项目中添加“WEB服务(ASMX ...

  10. 初始nginx(启动运行) 使用nginx做一个简单的静态资源服务器

    第一次接触nginx的时候,那时候公司还是用的一些不知名的小技术,后来公司发展问题,重新招了人,然后接触到nginx,公司 使用nginx用来做代理服务器,所有请求 都先经过nginx服务器,然后交由 ...

随机推荐

  1. 同义词查找,关键词扩展,使用腾讯Tencent AILAB的800万词向量,gensim,annoy

    最近在做一个关键词匹配系统,为了更好的效果, 添加一个关键词扩展的功能.使用Tencent AIlab的800万词向量文件. 腾讯AILAB的800万词向量下载地址:https://ai.tencen ...

  2. Docker 内安装 SSH 服务

    有时候我们想把 Docker 环境提供给别人,但是又不想提供宿主机,那么可以在 Docker 容器内运行 SSH 服务,使容器保持运行并提供给对方使用即可,下面我们以 CentOS 7.6 的 Doc ...

  3. 【笔记】connect by中的nocycle

    connect by主要用于父子,祖孙,上下级等层级关系的查询 常用的是prior,nocycle prior: 查询父行的限定符,格式: prior column1 = column2 or col ...

  4. three.js使用Instanced Draw+Frustum Cull+LOD来渲染大场景(开源)

    大家好,本文使用three.js实现了渲染大场景,在移动端也有较好的性能,并给出了代码,分析了关键点,感谢大家~ 关键词:three.js.Instanced Draw.大场景.LOD.Frustum ...

  5. 极致体验!基于阿里云 Serverless 快速部署 Function

    简介: 云计算的不断发展,涌现出很多改变传统 IT 架构和运维方式的新技术,而以虚拟机.容器.微服务为代表的技术更是在各个层面不断提升云服务的技术能力,它们将应用和环境中很多通用能力变成了一种服务.但 ...

  6. 【SIGIR 2022】面向长代码序列的Transformer模型优化方法,提升长代码场景性能

    简介: 论文主导通过引入稀疏自注意力的方式来提高Transformer模型处理长序列的效率和性能 阿里云机器学习平台PAI与华东师范大学高明教授团队合作在SIGIR2022上发表了结构感知的稀疏注意力 ...

  7. 深信服智能边缘计算平台与 OpenYurt 落地方案探索与实践

    ​简介:本文将介绍边缘计算落地的机遇与挑战,以及边缘容器开源项目 OpenYurt 在企业生产环境下的实践方案. 作者:赵震,深信服云计算开发工程师,OpenYurt 社区 Member 编者案:在 ...

  8. hyengine - 面向移动端的高性能通用编译/解释引擎

    ​简介:手机淘宝客户端在历史上接过多种多样的脚本引擎,用于支持的语言包括:js/python/wasm/lua,其中js引擎接过的就有:javascriptcore/duktape/v8/quickj ...

  9. Nacos 开源、自研、商业化三位一体战略解读

    简介: Nacos作为整个阿里云原生三位战略中的核心组成部分,我们在2018年以Configserver/VIPServer/Diamond为基础通过Nacos开源输出阿里十年沉淀的注册中心和配置中心 ...

  10. IIncrementalGenerator 增量 Source Generator 生成代码入门 从语法到语义 获取类型完全限定名

    本文告诉大家如何在使用 IIncrementalGenerator 进行增量的 Source Generator 生成代码时,如何从语法分析过程,将获取的语法 Token 转换到语义分析上,比如获取类 ...