保定企业建站系统模板,列举免费域名注册的网站,影楼网站模板,哪个网站能帮助做路书Node.js 入门笔记源码
01、如何在终端中执行js 文件 目标#xff1a;将下面的代码语句在中断中执行 代码演示#xff1a; console.log(Hello World)for (let i 0;i 3;i) {console.log(6)}方法#xff1a;在文件上右击打开在终端中执行#xff0c;然后输入node空格 输…Node.js 入门笔记源码
01、如何在终端中执行js 文件 目标将下面的代码语句在中断中执行 代码演示 console.log(Hello World)for (let i 0;i 3;i) {console.log(6)}方法在文件上右击打开在终端中执行然后输入node空格 输入需要执行的文件名字
02、基于 fs 模块读写文件内容 目标使用fs模代码操作文件在终端中的读写操作 1、加载 fs 模块对象 2、写入文件内容-----》writeFile文件中没有文件会自动帮我们创建3、读取文件 代码演示 // 1、加载 fs 模块对象
const fs require(fs)// 2、写入文件内容// 2.1test.txt为文件路径名字// 2.2写入的内容// 2.3回调函数返回错误打印出来 否则成功
fs.writeFile(test.txt,Hello World,(err) {if(err) console.log(err)else console.log(写入成功)
})// 3、读取文件
fs.readFile(test.txt,(err,data) {if (err) console.log(err)// else console.log(data) //Buffer 48 65 6c 6c 6f 20 57 6f 72 6c 64else console.log(data.toString()) //toString() 转为字符串形式
})执行结果为: 写入成功 Hello World
03、path模块-路径问题 问题 Node.js代码中相对路径是根据终端所在路径在查找的可能无法找到你想要的文件 因此建议在Node.js代码中使用绝对路径也就是需要在终端执行的代码内容 __dirname 内置变量 动态获取当前模块目录-绝对路径 **path.join()**会使用特定于平台的分隔符作为定界符将所有给定的路径片段连接在一起 语法1.加载path模块 2.使用path.join(__dirname, 目标文件的路径)方法拼接路径 代码演示 错误例子
//1、 引入 fs 模块 通过终端读取文件内容
// const fs require(fs)
// fs.readFile(test.txt,(err,data) {
// if (err) console.log(err)
// else console.log(data.toString()) //执行成功将十六进制转换为字符串形式返回结果
// })
// 这里使用相对路径就发生报错error
正确示例path.join()方法里面第一个参数就是__dirname 当前所在文件的文件夹地址终端的位置 第二个就是目标文件的路径
// 2、解决方式只有采用绝对路径// 1、引入 fs 模块const fs require(fs)// 2、引入 path 模块对象const path require(path)// 3、调用path.join()方法 配合 __dirname 组成目标文件的绝对路径console.log(__dirname)fs.readFile(path.join(__dirname,../test.txt),(err,data) {if (err) console.log(err)else console.log(data.toString())})
04、基于node.js 压缩前端文件 目标把回车符\r 和 换行符\n去掉后写入到新html文件中。 实现方法 读取源html文件内容 源html文件 (public文件夹下面的index.html文件) 未经过压缩的源代码 正则替换字符串 写入到新的html文件中 新的html文件 dist文件夹下面的index.html文件 经过node使用正则压缩后的代码 // 读取public文件夹里面的前端源代码
// 1.引入读取模块fs
const fs require(fs)
// 2.拼接路径获取绝对路径
const path require(path)
// 3、 __dirname当前文件夹所在的地址 进行查找文件
fs.readFile(path.join(__dirname,public/index.html),(err,data) {if (err) console.log(err)else {// 4、将返回的内容转为字符串显示const htmlStr data.toString()// 5、进行字符串替换 正则查找全局// replace()是一个字符串方法用于将指定的字符或子串替换为新的字符或子串。const resultStr htmlStr.replace(/[\r\n]/g,)console.log(resultStr)// 6、写入到新的 html 文件中fs.writeFile(path.join(__dirname,dist/index.html),resultStr,err {}) //writeFile文件中没有文件会自动帮我们创建if (err) console.log(err)else {console.log(写入成功)}}
})05、URL中的端口号 1.URL:简称网址用于访问服务器里的资源 2. http://hmajax.itheima.net:80/api/province 这里面80就是 端口号
3.端口号范围0~65535之间的任意整数 端口号默认为80注意1023之前的端口号是特定的被系统占用不可使用
06、http模块-创建Web服务 实现步骤 1、加载http模块创建Web服务对象 2、监听require请求事件设置响应头和响应体 3、配置端口号并启动Web服务 4、浏览器请求 http//localhost:3000则是我们的创建的web服务对象 代码示例 // 1、加载http模块创建Web服务对象
const http require(http)
const server http.createServer()//调用http里面的方法
// 2、监听require请求事件设置响应头和响应体
server.on(request,(req,res) {// 设置响应头-内容类型-普通文本以及中文编码格式res.setHeader(Content-Type,text/plain;charsetutf-8) //这里都是固定的内容类型// 设置响应体内容结束本次请求与相应res.end(欢迎使用 Node.js 和 http 模块创建的 Web服务)
})// 3、配置端口号并启动Web服务
server.listen(3000,() {console.log(Web 服务启动成功了)
}) 代码详细说明 这段代码是使用Node.js的http模块创建一个简单的Web服务以下是对代码的逐行解释 第一行代码const http require(http)加载了Node.js的http模块并将其赋值给变量http以便后续使用该模块提供的功能。第二行代码const server http.createServer()调用http模块中的createServer()方法创建一个HTTP服务器对象并将其赋值给变量server。此时的服务器对象还没有进行具体的请求处理配置。第四行代码server.on(request, (req, res) { ... })通过server对象的on方法监听request事件该事件会在有客户端请求到达服务器时触发。回调函数接收两个参数req表示请求对象res表示响应对象。在回调函数中通过res.setHeader(Content-Type, text/plain;charsetutf-8)设置响应头将内容类型设为普通文本以及中文编码格式。接着通过res.end(欢迎使用 Node.js 和 http 模块创建的 Web服务)设置响应体内容并结束本次请求与相应。最后一行代码server.listen(3000, () { ... })通过server对象的listen方法配置服务器监听的端口号为3000并启动Web服务。当服务器成功启动后回调函数会被执行输出一条信息表示服务器启动成功。 综上这段代码创建了一个简单的Web服务监听在本地主机的3000端口上。当有请求到达时会返回固定的欢迎消息。你可以通过访问http://localhost:3000来查看Web服务的响应。 07、基于Web服务开发提供网页资源的功能
基于Web服务开发提供网页资源的功能 目标基于 Web 服务开发提供网页资源的功能步骤 基于 http 模块创建 Web 服务 使用 req.url 获取请求资源路径并读取 index.html 里字符串内容返回给请求方 其他路径暂时返回不存在提示 运行 Web 服务用浏览器发起请求 代码示例 // 1. 基于 http 模块创建 Web 服务
const fs require(fs)
const path require(path)
const http require(http)
const server http.createServer()
server.on(request,(req,res) { //req为代表客户端发送的HTTP请求对象。res为代表服务端发送的HTTP响应对象// 2、使用 req.url 获取请求资源路径并读取 index.html 里字符串内容返回给请求方if (req.url /index.html) {fs.readFile(path.join(__dirname,dist/index.html),(err,data) {if (err) console.log(err)else {// 设置响应内容的类型为html超文本字符串 让浏览器解析成标签网页等res.setHeader(Content-Type,text/html;charsetutf-8)res.end(data.toString())}})} else {// 3. 其他路径暂时返回不存在提示res.setHeader(Content-Type,text/html;charsetutf-8)res.end(你要访问的资源路径不存在)}})
server.listen(8080,() {console.log(Web 服务启动成功)
})《代码解析》 这段代码的详细原理如下 首先引入了http、fs和path模块并通过http.createServer()创建了一个HTTP服务器对象并将其赋值给server变量。同时使用server.on(request, (req, res) { ... })监听request事件传入回调函数处理请求。在回调函数中首先通过req.url获取到客户端请求的资源路径。如果资源路径为/index.html则进入条件判断块。在条件判断块中使用fs.readFile()方法读取指定路径下的index.html文件内容。其中通过path.join(__dirname, dist/index.html)构建出index.html的完整路径。在回调函数中判断是否有读取错误若有错误则输出错误信息若没有错误则设置响应头的Content-Type为text/html;charsetutf-8表示响应内容类型为HTML文档然后通过res.end(data.toString())将读取到的文件内容作为响应体发送给客户端。如果资源路径不是/index.html则执行默认的else分支设置响应头的Content-Type为text/html;charsetutf-8并通过res.end(你要访问的资源路径不存在)返回一个提示消息给客户端。最后通过server.listen(8080, () { ... })配置服务器监听的端口号为8080并在服务器成功启动后输出一条提示信息。 总结来说这段代码创建了一个简单的HTTP服务器当客户端请求的资源路径为/index.html时会读取指定路径下的index.html文件内容并返回给客户端否则返回一个资源不存在的提示消息。通过监听request事件和处理回调函数实现了对不同请求路径的处理和响应。最后通过server.listen()方法指定监听的端口号并在服务器成功启动后输出启动成功的提示信息。 关于request监听函数中的req和res的详细解释 在Node.js的http模块中req和res是通常用于表示HTTP请求对象和HTTP响应对象的变量名。 req或者常见的缩写是request的缩写代表客户端发送的HTTP请求对象。它包含了与请求相关的各种信息如请求方法、URL、请求头、请求参数等。通过req对象我们可以获取和解析客户端发送的请求数据以便在服务器端进行处理和响应。res或者常见的缩写是response的缩写代表服务端发送的HTTP响应对象。它用于设置和发送服务端的响应给客户端。通过res对象我们可以设置响应的状态码、响应头、响应体内容等。最终将响应发送给客户端完成HTTP请求-响应周期。 在HTTP请求过程中客户端发送请求给服务器服务器接收到请求后创建一个req对象来表示该请求。然后服务器处理请求并生成相应的内容将其存放在一个res对象中并通过网络将res对象发送给客户端。 所以req和res分别代表了客户端发送的HTTP请求对象和服务端返回的HTTP响应对象在开发Web应用时我们可以使用这两个对象来实现对请求的处理和对响应的配置。
文章转载自: http://www.morning.khtjn.cn.gov.cn.khtjn.cn http://www.morning.plqhb.cn.gov.cn.plqhb.cn http://www.morning.zrfwz.cn.gov.cn.zrfwz.cn http://www.morning.gbwfx.cn.gov.cn.gbwfx.cn http://www.morning.lstmg.cn.gov.cn.lstmg.cn http://www.morning.clbsd.cn.gov.cn.clbsd.cn http://www.morning.jwgnn.cn.gov.cn.jwgnn.cn http://www.morning.znrgq.cn.gov.cn.znrgq.cn http://www.morning.llcgz.cn.gov.cn.llcgz.cn http://www.morning.zwmjq.cn.gov.cn.zwmjq.cn http://www.morning.fywqr.cn.gov.cn.fywqr.cn http://www.morning.cgntj.cn.gov.cn.cgntj.cn http://www.morning.rfpq.cn.gov.cn.rfpq.cn http://www.morning.tqklh.cn.gov.cn.tqklh.cn http://www.morning.ryxyz.cn.gov.cn.ryxyz.cn http://www.morning.srbfp.cn.gov.cn.srbfp.cn http://www.morning.fllfc.cn.gov.cn.fllfc.cn http://www.morning.rntgy.cn.gov.cn.rntgy.cn http://www.morning.lbbyx.cn.gov.cn.lbbyx.cn http://www.morning.kqblk.cn.gov.cn.kqblk.cn http://www.morning.sfqtf.cn.gov.cn.sfqtf.cn http://www.morning.qjldz.cn.gov.cn.qjldz.cn http://www.morning.qcmhs.cn.gov.cn.qcmhs.cn http://www.morning.rlqml.cn.gov.cn.rlqml.cn http://www.morning.bkqw.cn.gov.cn.bkqw.cn http://www.morning.grbgn.cn.gov.cn.grbgn.cn http://www.morning.pjxw.cn.gov.cn.pjxw.cn http://www.morning.rrxgx.cn.gov.cn.rrxgx.cn http://www.morning.nhzps.cn.gov.cn.nhzps.cn http://www.morning.rlhgx.cn.gov.cn.rlhgx.cn http://www.morning.rwdbz.cn.gov.cn.rwdbz.cn http://www.morning.xjqkh.cn.gov.cn.xjqkh.cn http://www.morning.xsbhg.cn.gov.cn.xsbhg.cn http://www.morning.cfnht.cn.gov.cn.cfnht.cn http://www.morning.mhbcy.cn.gov.cn.mhbcy.cn http://www.morning.cczrw.cn.gov.cn.cczrw.cn http://www.morning.wrlxy.cn.gov.cn.wrlxy.cn http://www.morning.qnxkm.cn.gov.cn.qnxkm.cn http://www.morning.bnfjh.cn.gov.cn.bnfjh.cn http://www.morning.fbdkb.cn.gov.cn.fbdkb.cn http://www.morning.tjsxx.cn.gov.cn.tjsxx.cn http://www.morning.hwpcm.cn.gov.cn.hwpcm.cn http://www.morning.hrtwt.cn.gov.cn.hrtwt.cn http://www.morning.tnqk.cn.gov.cn.tnqk.cn http://www.morning.skdrp.cn.gov.cn.skdrp.cn http://www.morning.yrpg.cn.gov.cn.yrpg.cn http://www.morning.bpmtl.cn.gov.cn.bpmtl.cn http://www.morning.dskzr.cn.gov.cn.dskzr.cn http://www.morning.xjwtq.cn.gov.cn.xjwtq.cn http://www.morning.ahscrl.com.gov.cn.ahscrl.com http://www.morning.wbqt.cn.gov.cn.wbqt.cn http://www.morning.rkqkb.cn.gov.cn.rkqkb.cn http://www.morning.qrmry.cn.gov.cn.qrmry.cn http://www.morning.kqkmx.cn.gov.cn.kqkmx.cn http://www.morning.mszwg.cn.gov.cn.mszwg.cn http://www.morning.lwjlj.cn.gov.cn.lwjlj.cn http://www.morning.tqpr.cn.gov.cn.tqpr.cn http://www.morning.bkfdf.cn.gov.cn.bkfdf.cn http://www.morning.mfltz.cn.gov.cn.mfltz.cn http://www.morning.gxfpk.cn.gov.cn.gxfpk.cn http://www.morning.wyzby.cn.gov.cn.wyzby.cn http://www.morning.yhwxn.cn.gov.cn.yhwxn.cn http://www.morning.kcxtz.cn.gov.cn.kcxtz.cn http://www.morning.fqqlq.cn.gov.cn.fqqlq.cn http://www.morning.ynbyk.cn.gov.cn.ynbyk.cn http://www.morning.brcdf.cn.gov.cn.brcdf.cn http://www.morning.yrycb.cn.gov.cn.yrycb.cn http://www.morning.zsgbt.cn.gov.cn.zsgbt.cn http://www.morning.tnzwm.cn.gov.cn.tnzwm.cn http://www.morning.wdprz.cn.gov.cn.wdprz.cn http://www.morning.gswfs.cn.gov.cn.gswfs.cn http://www.morning.mfzyn.cn.gov.cn.mfzyn.cn http://www.morning.dpzcc.cn.gov.cn.dpzcc.cn http://www.morning.rwbx.cn.gov.cn.rwbx.cn http://www.morning.jpmcb.cn.gov.cn.jpmcb.cn http://www.morning.prgnp.cn.gov.cn.prgnp.cn http://www.morning.bcjbm.cn.gov.cn.bcjbm.cn http://www.morning.zpqk.cn.gov.cn.zpqk.cn http://www.morning.ykkrg.cn.gov.cn.ykkrg.cn http://www.morning.knpmj.cn.gov.cn.knpmj.cn