GVKun编程网logo

node.js模块学习(三) http(nodejs的http模块)

7

想了解node.js模块学习(三)http的新动态吗?本文将为您提供详细的信息,我们还将为您解答关于nodejs的http模块的相关问题,此外,我们还将为您介绍关于keras模块学习之model层【重

想了解node.js模块学习(三) http的新动态吗?本文将为您提供详细的信息,我们还将为您解答关于nodejs的http模块的相关问题,此外,我们还将为您介绍关于keras模块学习之model层【重点学习】、Node http模块学习:聊聊基本用法、Node js 之 fs 模块学习、node.js (01http 模块 url 模块)的新知识。

本文目录一览:

node.js模块学习(三) http(nodejs的http模块)

node.js模块学习(三) http(nodejs的http模块)

     http服务器

要开发HTTP服务器程序,从头处理TCP连接,解析HTTP是不现实的。这些工作实际上已经由Node.js自带的http模块完成了。应用程序并不直接和HTTP协议打交道,而是操作http模块提供的request和response对象。

request对象封装了HTTP请求,我们调用request对象的属性和方法就可以拿到所有HTTP请求的信息;
response对象封装了HTTP响应,我们操作response对象的方法,就可以把HTTP响应返回给浏览器。

用Node.js实现一个HTTP服务器程序非常简单。我们来实现一个最简单的Web程序hello.js,它对于所有请求,都返回Hello World!

'use strict';
//获得http模块
var http = require('http');
//创建httpserver,获取request,rsponse
var helloServer =  http.createServer(function(request,response){
    console.log(request.method+","+request.url);
    response.writeHead(200,{'Content-Type':'text/html'});
    response.end('<h1>hello world</h1>');
});
helloServer.listen(8080);
console.log('server is running ');

         搭建文件服务器

让我们继续扩展一下上面的Web程序。我们可以设定一个目录,然后让Web程序变成一个文件服务器。要实现这一点,我们只需要解析request.url中的路径,然后在本地找到对应的文件,把文件内容发送出去就可以了。

解析URL需要用到Node.js提供的url模块,它使用起来非常简单,通过parse()将一个字符串解析为一个Url对象

          其实就是url输入文件路径,然后服务器会写文件内容

'use strice';
//获取url模块,解析文件路径
var fs = require('fs'),url = require('url'),path = require('path'),http = require('http');
var workpath = path.resolve('.');
var fileserver =   http.createServer(function (request,response) {
    var pathname = url.parse(request.url).pathname;
    console.log(pathname);
    var filepath =  path.join(workpath,pathname);
    fs.stat(filepath,function(err,stats){
        if(!err&&stats.isFile()){
            //文件存在
            console.log('200,文件存在');
            response.writeHead(200,'content-type:text/html');
            fs.createReadStream(filepath).pipe(response);
        }else{
            //文件不存在
            console.log('404,文件找不到');
            response.writeHead(404);
        }
    });
   });
   fileserver.listen(8080);
   console.log('server is running');

keras模块学习之model层【重点学习】

keras模块学习之model层【重点学习】

    本笔记由博客园-圆柱模板 博主整理笔记发布,转载需注明,谢谢合作!

  model层是keras模块最重要的一个层,所以单独做下笔记,这块比较难理解,本博主自己还在学习这块,还在迷糊中。

   model的方法:

model.summary() : 打印出模型概况

model.get_config() :返回包含模型配置信息的Python字典

model.get_weights():返回模型权重张量的列表,类型为numpy array

model.set_weights():从numpy array里将权重载入给模型

model.to_json:返回代表模型的JSON字符串,仅包含网络结构,不包含权值。可以从JSON字符串中重构原模型:

from models import model_from_json

json_string = model.to_json()
model = model_from_json(json_string)

  model.to_yaml:与model.to_json类似,同样可以从产生的YAML字符串中重构模型

from models import model_from_yaml

yaml_string = model.to_yaml()
model = model_from_yaml(yaml_string)

  model.save_weights(filepath):将模型权重保存到指定路径,文件类型是HDF5(后缀是.h5)

       model.load_weights(filepath, by_name=False):从HDF5文件中加载权重到当前模型中, 默认情况下模型的结构将保持不变。如果想将权重载入不同的模型(有些层相同)中,则设置by_name=True,只有名字匹配的层才会载入权重。keras有两种model,分别是Sequential模型和泛型模型

Node http模块学习:聊聊基本用法

Node http模块学习:聊聊基本用法

本篇文章给大家了解一下node.js http模块,介绍一下createserver和listen方法,希望对大家有所帮助!

Node http模块学习:聊聊基本用法

http 模块

使用 Node.js 中创建 Web 服务,主要依赖内置的 http 模块。经典的 express.js、koa.js 框架都是以 http 模块为核心,进行的不同程度的封装。

创建一个最简单的 Web 服务只需要几行代码。新建一个 index.js 文件,输入以下内容:

// 1.导入 http 模块
const http = require(&#39;http&#39;);

// 2. 调用 createServer 方法创建服务
const server = http.createServer((request, response) => {
    // 3.响应给浏览器的内容
	response.end(&#39;Hello, World&#39;); 
});

// 4.执行 listen 方法,启动服务
server.listen(3000, () => {
    console.log(&#39;服务器启动成功:http://localhost:3000&#39;)
})
登录后复制

然后打开命令行工具,使用 node 命令执行该文件:

点击下载“修复打印机驱动工具”;

node index.js
登录后复制

命令行工具中会打印:

服务器启动成功:http://localhost:3000
登录后复制

之后打开浏览器,访问 http://localhost:3000,就能看到以下内容:

1.png

到这里,只需件简简单单的 6 行代码,就创建了一个 web 服务。【相关教程推荐:nodejs视频教程、编程教学】

createServer 方法

可以看到,创建 Web 服务的核心方法就是 createServer 方法。

它接收一个回调函数,回调参数接收两个参数,分别是 :

  • request 对象:表示 HTTP 请求对象,里面包含了客户端本次请求携带的信息
  • response 对象:表示 HTTP 响应对象,用于向客户端设置响应的信息

这个回调函数,就是处理 http 请求,设置 http 响应的主要场所。所以,编写 web 服务,其实就是在不停的在这个函数中处理请求和响应内容。这也是基于 HTTP 协议本身的请求-响应模型所决定的。当然,实际开发中肯定不能这么杂糅的写,都是使用框架,那会有很合理的中间件机制和分层。

listen 方法

我们都知道,TCP 协议是 HTTP 协议的底层协议,所有 HTTP 请求的数据都是利用 TCP 传输的。要发送 HTTP 请求,必须先建立 TCP 连接

Node 中要创建 HTTP 服务也是如此。createServer 方法执行后会创建一个 Server 类的实例,该 Server 类又继承自另一个内置模块 net 中的 Server 类,它身上有一个 listen 方法。下面是相关的类型声明,可以理解这其中的关系。

// net 模块

class Server extends EventEmitter {
 
        /**
         * 启动服务器监听连接。此 Server 可以是 TCP 或 IPC 服务器,具体取决于它所监听的内容。
         */
        // 有若干重载,这是最常使用的一种方法
        listen(port?: number, hostname?: string, listeningListener?: () => void): this;
        listen(port?: number, listeningListener?: () => void): this;
}


// http 模块
import { Server as NetServer } from &#39;node:net&#39;;

function createServer<
        Request extends typeof IncomingMessage = typeof IncomingMessage,
        Response extends typeof ServerResponse = typeof ServerResponse,
    >(requestListener?: RequestListener<Request, Response>): Server<Request, Response>;
      
class Server<
        Request extends typeof IncomingMessage = typeof IncomingMessage,
        Response extends typeof ServerResponse = typeof ServerResponse,
    > extends NetServer {}
登录后复制

所以通过 createServer 方法创建了服务之后,还用再调用 listen 方法,用于启动该服务,监听连接

它有多种重载,最常用的一种就是监听一个端口,在启动成功后,执行回调函数:

server.listen(3000, () => {
    console.log(&#39;服务器启动成功:http://localhost:3000&#39;)
})
登录后复制

如果服务启动失败,比如出现端口占用时,控制台中会直接报错,就不再执行后面的回调函数了。

再介绍两种其他的重载,使用的并不多。

一种是不指定端口号,此时操作系统会随机分配一个可用的端口号。在服务启动成功后,可以通过 server.address().port 属性来获得分配的端口号:

server.listen(() => {
    const port = server.address().port
    console.log(port)
    console.log(&#39;服务器启动成功:http://localhost:&#39;, port)
})
登录后复制

试一下:

2.png

一种是指定要监听的主机名

当不指定 host 时,默认为 0.0.0.0(IPv4)或者 ::(IPv6),支持网络中所有的主机进行访问

如果设置为 locolhost 或者 127.0.0.1,则只能自己的主机访问。

server.listen(3000, &#39;localhost&#39;, () => {
    console.log(&#39;服务器启动成功:http://localhost:&#39;, port)
})
登录后复制

总结

我们介绍了 http 模块的基本用法,主要使用 createServer 来创建服务,再调用 listen 方法来启动服务,监听连接。createServer 接收回调函数用来具体处理某一个请求,编写 web 服务主要就是利用回调函数的两个参数 request 和 response ,后面会详细介绍。

更多node相关知识,请访问:nodejs 教程!

以上就是Node http模块学习:聊聊基本用法的详细内容,更多请关注php中文网其它相关文章!

Node js 之 fs 模块学习

Node js 之 fs 模块学习

 

学习 nodejs 还有很多的不懂,现在写下我学习的心得以及整理下笔记:

 

下面是我整理的笔记:

 

    1、初识 node.js

  简单的说 Node.js 就是运行在服务器端的 JavaScript。

       Node.js 是一个基于 Chrome JavaScript 运行时建立的一个平台。

       Node.js 是一个事件驱动 I/O 服务端 JavaScript 环境,基于 Google 的 V8 引擎,V8 引擎执行 Javascript 的速度非常快,性能非常好。

       Node.js 的包管理器 npm,是全球最大的开源库生态系统。

       Node.js 官网:https://nodejs.org/en

       npm 官网https://www.npmjs.com

 

  2、node.js 命令介绍(cmd 终端执行)

       查看 node 版本: node –v

       查看 npm 版本:npm -v

       进入 node 环境:node

       退出 node 环境:两次 ctrl+c

 

  3、nodejs 内置模块

  NodeJS 没有自己的语法,JS 能写什么,node 就能运行什么

 

  *** 但是要注意,仅限于 JS 语言核心部分。DOMBOM 不能用,node 没有浏览器的那些东西。**

  Nodejs fs 模块官网:http://nodejs.cn/api/fs.html

  fs file system 文件系统的意思,提供了对文件的所有操作。

  var fs=require("fs");

 

  fs 模块有个方法叫 readFile,可以异步读文件内容

 1 //err参数:错误信息,没有错误将返回null
 2 //data参数:返回文件的内容
 3 var fs = require("fs");
 4 fs.readFile("./aaa/01.txt", function(err, date) {//readFile F一定要大写
 5     if(err){
 6         console.log(err + "打开文件夹错误");
 7         return;
 8     }
 9     //读取的是信息流,是Buffer是缓冲的二进制,用toString()转为字符串
10     console.log(date.toString());
11 });

 

  运行结果如下:

 

  在 Nodejs 中要适应回调套回调函数,写法如下:

 1 var fs = require("fs");
 2 
 3 fs.readFile("./test1.txt",function(err,data){
 4     console.log(data.toString());
 5 
 6     fs.readFile("./test2.txt",function(err,data){
 7         console.log(data.toString());
 8 
 9         fs.readFile("./test3.txt",function(err,data){
10             console.log(data.toString());
11         });
12     });
13 });

 

如果不想写异步回调函数,可以使用同步版本的函数,写法如下:

1 var data = fs.readFileSync("AAA.txt","utf8");
2 console.log(data);

 

 

fs.writeFile () 是写入文件的方法

  那么有读就必须有写,fs.writeFile () 是写入文件的方法:

1 //同步函数
2 fs.writeFileSync("BBB.txt", "Hello World");
3 
4 //异步函数
5 fs.readFile("AAA.txt","utf8",function (err,data) {
6     if (err) throw err;
7     console.log(data);
8 });

 

  读写操作:

1 读写操作:
2 fs.readFile("AAA.txt","utf8",function (err,data) {
3 if (err) throw err;
4 //将读取到的文件内容写入CCC文件中
5     fs.writeFile("CCC.txt", data);
6 });

 

  写读操作:

 1 var fs=require("fs");
 2 //{ ''flag'': ''a''}追加参数,使写入的时候不会清空原来的写入的值。传递了追加参数 { ''flag'': ''a'' }
 3 //"\n"或者"\r"表示输出的内容换行。
 4 fs.writeFile("./aaa/01.txt","Hello World"+"\n",{ ''flag'': ''a''},function(err,date){
 5     if(err){
 6         console.log("写入错误");
 7         return;
 8     }
 9     //任意的,写入的时候它先执行并先显示。
10         console.log("aaa");
11         fs.readFile("./aaa/01.txt",''utf8'', function(err, date){
12         console.log(date.toString());
13             
14         });
15         console.log("b");
16 })

执行如下:

 

fs.mkdir() 创建文件夹

 

1 // 创建文件夹 同步函数
2 fs.mkdirSync("stuff");
3 // 创建文件夹(异步函数) 并 读写文件
4 fs.mkdir("fileTxt", function() {
5     fs.readFile("AAA.txt",function (err,data) {
6         if (err) throw err;
7         fs.writeFile("./fileTxt/DDD.txt", data);
8     });
9 });

 

fs.unlink () 删除文件夹

 1 // 删除文件(异步)
 2 fs.unlink("AAA.txt");
 3 
 4 // 删除文件夹(同步)
 5 fs.rmdirSync("img");
 6 
 7 // 删除文件(异步)并 删除文件夹(异步)
 8 fs.unlink("./txt/AAA.txt",function(){
 9     fs.rmdir("txt");
10 });

 

node.js (01http 模块 url 模块)

node.js (01http 模块 url 模块)

// 引入 http 模块-->Node.js 中的很多功能都是通过模块实现。
var http = require(''http'');
// http.createServer() 方法创建服务器,并使用 listen 方法绑定 8888 端口。
var server=http.createServer(function (request, response) {
    // 发送 HTTP 头部, HTTP 状态值: 200 : OK  ,设置 HTTP 头部,状态码是 200,文件类型是 html,字符集是 utf8
    response.writeHead(200,{"Content-Type":"text/html;charset=UTF-8"});
    response.end("我的第1nodejs");// end 方法使 Web 服务器停止处理脚本并返回当前结果,必须写不然 浏览器左上角一直转圈圈
})
server.listen(8888);//监听端口
console.log(''服务器已开启---------------------------------------------------------------端口号自己看-----------------------------------------------'');

随便写一个js(我这里命名http.js)

然后到该目录下,node http.js  打开http://localhost:8888/就能看效果了,哈哈   (我用vscode),你没修改的话就得重启这个js  就得推出然后重新执行node http.js,麻烦推荐一个

实用小插件npm install -g supervisor  安装之后只要你文件有修改,保存后它自己就重启服务了,不用在手动输入命令了哈哈,这里启功命令变了supervisor http.js 舒服

 

url模块用来解析url,url一共提供了三个方法,分别是url.parse();  url.format();  url.resolve();

 

 

 

 

 

 

今天关于node.js模块学习(三) httpnodejs的http模块的分享就到这里,希望大家有所收获,若想了解更多关于keras模块学习之model层【重点学习】、Node http模块学习:聊聊基本用法、Node js 之 fs 模块学习、node.js (01http 模块 url 模块)等相关知识,可以在本站进行查询。

本文标签: