如何使用Node.js的http模块和npm模块实现长尾词功能?

2026-03-31 17:591阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1769个文字,预计阅读时间需要8分钟。

如何使用Node.js的http模块和npm模块实现长尾词功能?

目录 + HTTP模块 + 创建服务器基本步骤 + request对象详解 + response对象详解 + 实现静态WEB服务器 + 服务器响应首页 + 数据根目录不同,URL不同,响应不同 + 静态资源通用处理 + npm - Node包管理工具 + npm的基本使用

目录
  • localhost:9999"); });

    详细说明

    • 给服务器注册request事件,只要服务器接收到了客户端的请求,就会触发request事件
    • request事件有两个参数,request表示请求对象,可以获取所有与请求相关的信息,response是响应对象,可以获取所有与响应相关的信息。
    • 服务器监听的端口范围为:1-65535之间,推荐使用3000以上的端口,因为3000以下的端口一般留给系统使用

    request对象详解

    文档地址:nodejs.cn/api/nodejs.cn/api/http.html#http_class_http_serverresponse

    常见的属性和方法:

    • res.write(data): 给浏览器发送请求体,可以调用多次,从而提供连续的请求体
    • res.end(); 通知服务器,所有响应头和响应主体都已被发送,即服务器将其视为已完成。
    • res.end(data); 结束请求,并且响应一段内容,相当于res.write(data) + res.end()
    • res.statusCode: 响应的的状态码 200 404 500
    • res.statusMessage: 响应的状态信息, OK Not Found ,会根据statusCode自动设置。
    • res.setHeader(name, value); 设置响应头信息, 比如content-type
    • res.writeHead(statusCode, statusMessage, options); 设置响应头,同时可以设置状态码和状态信息。

    注意:必须先设置响应头,才能设置响应。

    实现静态WEB服务器

    服务器响应首页

    注意:浏览器中输入的URL地址,仅仅是一个标识,不与服务器中的目录一致。也就是说:返回什么内容是由服务端的逻辑决定

    server.on('request', function(req, res) {   var url = req.url   if(url === '/') {     fs.readFile('./index.html', function(err, data) {       if(err) {         return res.end('您访问的资源不存在~')       }         res.end(data)     })   } })

    根据根据不同url,响应不同文件

    content-type设置-MIME类型

    • MIME(Multipurpose Internet Mail Extensions)多用途Internet邮件扩展类型 是一种表示文档性质和格式的标准化方式
    • 浏览器通常使用MIME类型(而不是文件扩展名)来确定如何处理文档;因此服务器将正确的MIME类型附加到响应对象的头部是非常重要的
    • MIME 类型

    静态资源的通用处理

    MIME类型的通用处理-mime模块

    • 作用:获取文件的MIME类型
    • 安装:npm i mime

    引入mime:

    var mime = require('mime') // 获取路径对应的MIME类型 mime.getType('txt') // ⇨ 'text/plain' // 根据MIME获取到文件后缀名 mime.getExtension('text/plain') // ⇨ 'txt'

    const http = require('http') const fs = require('fs') const path = require('path') const mime = require('mime') http.createServer((req, res) => { // 只需要判断 url是否以 /www开始 const url = req.url if (url.startsWith('/www')) { // 直接读取文件 const filePath = path.join(__dirname, url) fs.readFile(filePath, (err, data) => { if (err) { // 响应404 res.statusCode = 404 res.end('404') } else { // 设置mime类型 res.setHeader('content-type', mime.getType(url)) // 响应数据 res.end(data) } }) } else { res.statusCode = 404 res.end('404') } }) .listen(9999, () => { console.log('服务器启动成功了') })

    npm - Node包管理工具

    npm的基本概念

    • node package manager
    • npm官网
    • npm中文文档

    1. npm 是node的包管理工具,

    2. 它是世界上最大的软件注册表,每星期大约有 30 亿次的下载量,包含超过 600000 个 包(package) (即,代码模块)。

    3. 来自各大洲的开源软件开发者使用 npm 互相分享和借鉴。包的结构使您能够轻松跟踪依赖项和版本。

    • 作用:通过npm来快速安装开发中使用的包
    • npm不需要安装,只要安装了node,就自带了npm

    npm基本使用

    初始化包

    npm init;    //这个命令用于初始化一个包,创建一个package.json文件,我们的项目都应该先执行npm init npm init -y;  //快速的初始化一个包, 不能是一个中文名

    安装包

    npm install 包名;  //安装指定的包名的最新版本到项目中 npm install 包名@版本号;  //安装指定包的指定版本 npm i 包名; //简写

    卸载包

    如何使用Node.js的http模块和npm模块实现长尾词功能?

    npm uninstall 包名;  //卸载已经安装的包

    清除缓存

    npm cache clean -f // 如果npm安装失败了,可以用这个命令来清除缓存

    package.json文件

    package.json文件,包(项目)描述文件,用来管理组织一个包(项目),它是一个纯JSON格式的。

    • 作用:描述当前项目(包)的信息,描述当前包(项目)的依赖项
    • 如何生成:npm init或者npm init -y
    • 作用

    作为一个标准的包,必须要有package.json文件进行描述

    一个项目的node_modules目录通常都会很大,不用拷贝node_modules目录,可以通过package.json文件配合npm install直接安装项目所有的依赖项

    • 描述内容

    {   "name": "03-npm",  //描述了包的名字,不能有中文   "version": "1.0.0",  //描述了包的的版本信息, x.y.z  如果只是修复bug,需要更新Z位。如果是新增了功能,但是向下兼容,需要更新Y位。如果有大变动,向下不兼容,需要更新X位。   "description": "", //包的描述信息   "main": "index.js", //入口文件(模块化加载规则的时候详细的讲)   "scripts": {  //配置一些脚本,在vue的时候会用到,现在体会不到     "test": "echo \"Error: no test specified\" && exit 1"   },   "keywords": [],  //关键字(方便搜索)   "author": "",  //作者的信息   "license": "ISC",  //许可证,开源协议   "dependencies": {   //重要,项目的依赖, 方便代码的共享  通过 npm install可以直接安装所有的依赖项     "bootstrap": "^3.3.7",     "jquery": "^3.3.1"   } }

    注意:一个合法的package.json,必须要有name和version两个属性

    本地安装和全局安装

    有两种方式用来安装 npm 包:本地安装和全局安装。选用哪种方式来安装,取决于你如何使用这个包。

    全局安装:如果你想将其作为一个命令行工具,那么你应该将其安装到全局。这种安装方式后可以让你在任何目录下使用这个命令。比如less命令,webpack命令,hcc-md命令 。

    本地安装:如果你自己的模块依赖于某个包,并通过 Node.js 的 require 加载,那么你应该选择本地安装,这种方式也是 npm install 命令的默认行为。

    // 全局安装,会把npm包安装到C:\Users\HUCC\AppData\Roaming\npm目录下,作为命令行工具使用 npm install -g 包名; //本地安装,会把npm包安装到当前项目的node_modules文件中,作为项目的依赖 npm install 包名;

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持易盾网络。

本文共计1769个文字,预计阅读时间需要8分钟。

如何使用Node.js的http模块和npm模块实现长尾词功能?

目录 + HTTP模块 + 创建服务器基本步骤 + request对象详解 + response对象详解 + 实现静态WEB服务器 + 服务器响应首页 + 数据根目录不同,URL不同,响应不同 + 静态资源通用处理 + npm - Node包管理工具 + npm的基本使用

目录
  • localhost:9999"); });

    详细说明

    • 给服务器注册request事件,只要服务器接收到了客户端的请求,就会触发request事件
    • request事件有两个参数,request表示请求对象,可以获取所有与请求相关的信息,response是响应对象,可以获取所有与响应相关的信息。
    • 服务器监听的端口范围为:1-65535之间,推荐使用3000以上的端口,因为3000以下的端口一般留给系统使用

    request对象详解

    文档地址:nodejs.cn/api/nodejs.cn/api/http.html#http_class_http_serverresponse

    常见的属性和方法:

    • res.write(data): 给浏览器发送请求体,可以调用多次,从而提供连续的请求体
    • res.end(); 通知服务器,所有响应头和响应主体都已被发送,即服务器将其视为已完成。
    • res.end(data); 结束请求,并且响应一段内容,相当于res.write(data) + res.end()
    • res.statusCode: 响应的的状态码 200 404 500
    • res.statusMessage: 响应的状态信息, OK Not Found ,会根据statusCode自动设置。
    • res.setHeader(name, value); 设置响应头信息, 比如content-type
    • res.writeHead(statusCode, statusMessage, options); 设置响应头,同时可以设置状态码和状态信息。

    注意:必须先设置响应头,才能设置响应。

    实现静态WEB服务器

    服务器响应首页

    注意:浏览器中输入的URL地址,仅仅是一个标识,不与服务器中的目录一致。也就是说:返回什么内容是由服务端的逻辑决定

    server.on('request', function(req, res) {   var url = req.url   if(url === '/') {     fs.readFile('./index.html', function(err, data) {       if(err) {         return res.end('您访问的资源不存在~')       }         res.end(data)     })   } })

    根据根据不同url,响应不同文件

    content-type设置-MIME类型

    • MIME(Multipurpose Internet Mail Extensions)多用途Internet邮件扩展类型 是一种表示文档性质和格式的标准化方式
    • 浏览器通常使用MIME类型(而不是文件扩展名)来确定如何处理文档;因此服务器将正确的MIME类型附加到响应对象的头部是非常重要的
    • MIME 类型

    静态资源的通用处理

    MIME类型的通用处理-mime模块

    • 作用:获取文件的MIME类型
    • 安装:npm i mime

    引入mime:

    var mime = require('mime') // 获取路径对应的MIME类型 mime.getType('txt') // ⇨ 'text/plain' // 根据MIME获取到文件后缀名 mime.getExtension('text/plain') // ⇨ 'txt'

    const http = require('http') const fs = require('fs') const path = require('path') const mime = require('mime') http.createServer((req, res) => { // 只需要判断 url是否以 /www开始 const url = req.url if (url.startsWith('/www')) { // 直接读取文件 const filePath = path.join(__dirname, url) fs.readFile(filePath, (err, data) => { if (err) { // 响应404 res.statusCode = 404 res.end('404') } else { // 设置mime类型 res.setHeader('content-type', mime.getType(url)) // 响应数据 res.end(data) } }) } else { res.statusCode = 404 res.end('404') } }) .listen(9999, () => { console.log('服务器启动成功了') })

    npm - Node包管理工具

    npm的基本概念

    • node package manager
    • npm官网
    • npm中文文档

    1. npm 是node的包管理工具,

    2. 它是世界上最大的软件注册表,每星期大约有 30 亿次的下载量,包含超过 600000 个 包(package) (即,代码模块)。

    3. 来自各大洲的开源软件开发者使用 npm 互相分享和借鉴。包的结构使您能够轻松跟踪依赖项和版本。

    • 作用:通过npm来快速安装开发中使用的包
    • npm不需要安装,只要安装了node,就自带了npm

    npm基本使用

    初始化包

    npm init;    //这个命令用于初始化一个包,创建一个package.json文件,我们的项目都应该先执行npm init npm init -y;  //快速的初始化一个包, 不能是一个中文名

    安装包

    npm install 包名;  //安装指定的包名的最新版本到项目中 npm install 包名@版本号;  //安装指定包的指定版本 npm i 包名; //简写

    卸载包

    如何使用Node.js的http模块和npm模块实现长尾词功能?

    npm uninstall 包名;  //卸载已经安装的包

    清除缓存

    npm cache clean -f // 如果npm安装失败了,可以用这个命令来清除缓存

    package.json文件

    package.json文件,包(项目)描述文件,用来管理组织一个包(项目),它是一个纯JSON格式的。

    • 作用:描述当前项目(包)的信息,描述当前包(项目)的依赖项
    • 如何生成:npm init或者npm init -y
    • 作用

    作为一个标准的包,必须要有package.json文件进行描述

    一个项目的node_modules目录通常都会很大,不用拷贝node_modules目录,可以通过package.json文件配合npm install直接安装项目所有的依赖项

    • 描述内容

    {   "name": "03-npm",  //描述了包的名字,不能有中文   "version": "1.0.0",  //描述了包的的版本信息, x.y.z  如果只是修复bug,需要更新Z位。如果是新增了功能,但是向下兼容,需要更新Y位。如果有大变动,向下不兼容,需要更新X位。   "description": "", //包的描述信息   "main": "index.js", //入口文件(模块化加载规则的时候详细的讲)   "scripts": {  //配置一些脚本,在vue的时候会用到,现在体会不到     "test": "echo \"Error: no test specified\" && exit 1"   },   "keywords": [],  //关键字(方便搜索)   "author": "",  //作者的信息   "license": "ISC",  //许可证,开源协议   "dependencies": {   //重要,项目的依赖, 方便代码的共享  通过 npm install可以直接安装所有的依赖项     "bootstrap": "^3.3.7",     "jquery": "^3.3.1"   } }

    注意:一个合法的package.json,必须要有name和version两个属性

    本地安装和全局安装

    有两种方式用来安装 npm 包:本地安装和全局安装。选用哪种方式来安装,取决于你如何使用这个包。

    全局安装:如果你想将其作为一个命令行工具,那么你应该将其安装到全局。这种安装方式后可以让你在任何目录下使用这个命令。比如less命令,webpack命令,hcc-md命令 。

    本地安装:如果你自己的模块依赖于某个包,并通过 Node.js 的 require 加载,那么你应该选择本地安装,这种方式也是 npm install 命令的默认行为。

    // 全局安装,会把npm包安装到C:\Users\HUCC\AppData\Roaming\npm目录下,作为命令行工具使用 npm install -g 包名; //本地安装,会把npm包安装到当前项目的node_modules文件中,作为项目的依赖 npm install 包名;

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持易盾网络。