当前位置: 首页 > news >正文

网站开发技术与应用试验报告4中小微企业税收政策

网站开发技术与应用试验报告4,中小微企业税收政策,搭建html5网站,自媒体一号WordPress主题Node.js#xff1a;内置模块 Node.jsfs模块读取文件写入文件__dirname path模块路径拼接文件名解析 http模块创建服务 Node.js 传统的JavaScript是运行在浏览器的#xff0c;浏览器就是其运行环境。 浏览器提供了JavaScript的API#xff0c;以及解析JavaScript的解析引擎内置模块 Node.jsfs模块读取文件写入文件__dirname path模块路径拼接文件名解析 http模块创建服务 Node.js 传统的JavaScript是运行在浏览器的浏览器就是其运行环境。 浏览器提供了JavaScript的API以及解析JavaScript的解析引擎常见的解析引擎如下 Chrome 浏览器V8Firefox 浏览器OdinMonkey(奥丁猴)Safri 浏览器JSCoreIE 浏览器Chakra(查克拉) 其中V8引擎的性能最好所以前端程序员最常使用chrome来运行代码。 那么这样一个JavaScript架构可以支持JavaScript成为一款后端语言吗并不可以因为它没有提供后端所需要的API比如文件读写网络请求等等。 为了让JavaScript可以成为一款后端语言完成后端所需要完成的任务就需要为其提供一套其它的运行环境而这个运行环境就是Node.js。 在Node.js中为JavaScript提供了后端所需的API使用V8引擎进行代码解析让JavaScript可以完成后端工作。 但是在Node.js中无法调用浏览器的DOMBOM等API因为这一套运行环境并不提供可见JavaScript的前后端运行环境是分离的。 安装地址 https://nodejs.org/建议下载LTS版本这是稳定版本。这个安装很简单一直点击next就可以了。 安装后输入node -v检查是否安装成功 C:\Users\xxx node -v v20.18.0安装成功后可以通过vscode执行node代码。 console.log(hello node.js)编写代码后按下F5 执行时其会提示可以使用Node.js进行编译选择Node.js。 此时就可以在控制台看到输出结果了。 也可以通过命令来执行程序 node 执行的文件fs模块 fs是官方提供的操作文件的模块其可以对文件进行读取与写入。 导入模块语法 const fs require(fs)此处的require方法用于导入模块返回值用一个对象接收后续通过该变量使用模块。 读取文件 读取文件使用fs.readFile方法 fs.readFile(path[, options], callback)path读取文件的存放路径options可选参数读取文件时候采用的编码格式一般默认指定 utf8callback回调函数函数内包含两个参数分别拿到读取失败和成功的结果 示例 const fs require(fs)fs.readFile(./files/1.txt, utf8, function(err, dataStr) {console.log(err err)console.log(dataStr dataStr) })第一行代码导入fs模块随后通过readFile读取文件。 读取成功 err null dataStr 文件内容读取失败 err Error: ENOENT: no such file or directory dataStr undefined不论是否读取成功都调用回调函数。如果读取成功err的值是nulldataStr的值是文件内容如果读取失败那么err存储错误信息而dataStr是undefined。 常见的做法是在回调函数中判断err的值如果err为空直接返回错误信息如果没有返回那么后续就进行正常的文件读取操作。 fs.readFile(./files/11.txt, utf8, function(err, dataStr) {if (err) {return console.log(error err.message)}console.log(success dataStr) })写入文件 写入文件使用fs.writeFile方法 fs.writeFile(path, data[, options], callback)path写入文件的存放路径data要写入的内容options可选参数读取文件时候采用的编码格式一般默认指定 utf8callback回调函数函数内包含一个参数表示错误信息 同样的如果写入成功那么回调函数的第一个参数为null如果写入失败那么第一个参数为错误信息。 示例 const fs require(fs)fs.writeFile(./files/3.txt, hello node.js, function(err) {if (err) {return console.log(error err.message)}console.log(success) })以上代码完成对./files/3.txt文件的写入写入内容是hello node.js写入完成后判断错误信息是否写入成功。 注意点 writeFile写入时如果文件不存在那么会创建这个文件writeFile写入前会清空被写入的文件原先内容会被覆盖 __dirname 在fs模块中如果使用相对路径那么此时node.js会以执行命令的路径为出发点查找相对路径而不是以被执行的文件为出发点查找相对路径这和其他语言略有点不同。 以下代码为例 fs.readFile(./hello.txt, utf8, function(err, dataStr) {if (err) {return console.log(error err.message)}console.log(success: dataStr) })在path.js文件中写JavaScript代码在其同级目录下存在一个hello.txt。如果在path.js目录下运行程序那么程序可以正常输出 此时进行路径拼接当前路径 相对路径得到D:\code_web\test\Node\01\hello.txt这是正确的路径输出成功了。 但是如果跳转到别的目录执行代码 此时进行路径拼接当前路径 相对路径得到D:\code_web\test\Node\hello.txt这是错误的路径输出失败了。 可以看出Node.js不适合使用相对路径查找文件但是由于不同主机环境不同绝对路径往往不一样。为此Node.js提供了一个变量__dirname其标识着当前.js文件的所处目录。 在path.js中输出_dirname console.log(__dirname)此时不论出于哪一个目录都可以成功标识出path.js的所处目录。 所以在fs中使用相对路径时最好通过__dirname 相对路径来查找文件 fs.readFile(__dirname /hello.txt, utf8, function(err, dataStr) {if (err) {return console.log(error err.message)}console.log(success: dataStr) })这样不论在什么地方运行程序都可以正常检索路径了。 path模块 path也是Node.js的内置模块专门用于处理路径。 导入模块 const path require(path)先前的__dirname /hello.txt操作是不太正规的path模块有专门用于路径拼接的方法。 路径拼接 path.join方法可以将多个路径片段拼接为完整的路径字符串。 语法 path.join(path, [path...])传入多个路径片段path最后返回拼接好的路径。 示例 const pathStr path.join(/a, /b/c, ./d, e) console.log(pathStr)输出结果 \a\b\c\d\epath.join不是简单的字符串拼接此处的e前面没有/路径分隔符其自动补充上去而./d中./表示当前路径最后被省略掉了。 path.join还会进行路径的推演来缩短路径比如说../表示上级目录那么path.join就会撤销之前的操作 const pathStr path.join(/a, /b/c, ../../, ./d, e) console.log(pathStr)输出结果 \a\d\e此时/b/c这个路径就被抵消了。 相对路径拼接就可以使用这个方法 path.join(__dirname, /hello.txt)比如有时候相对路径前面会带一个./如果直接进行字符串假发__dirname ./hello.txt此时路径就会错误无法解析。但是使用path.join就会忽略这个./得到正确的路径。 文件名解析 有的时候获取到的文件是以路径的形式出现此时为了解析出具体的文件名就需要进行一定的字符串检索操作比较麻烦。此时可以使用 path.basename方法快速解析出文件名。 path.basename(path[, ext])参数 path文件路径ext扩展文件名 如果直接输入一个路径path.basename会解析出文件名 const path require(path) const fpath /a/b/c/index.htmlconst fullName path.basename(fpath) console.log(fullName)输出结果 index.html如果想要得到去掉后缀的文件名此时填入第二个参数去掉后缀 const path require(path)const fpath /a/b/c/index.htmlconst nameWithoutExt path.basename(fpath, .html) console.log(nameWithoutExt)输出结果 index这样就同时去掉了路径前缀以及文件后缀。 如果需要单独获得文件的扩展名可以使用path.extname方法 path.extname(path)示例 const path require(path) const fpath /a/b/c/index.htmlconst fext path.extname(fpath) console.log(fext)输出结果 .htmlhttp模块 http模块是Node.js的内置模块其可以快速创建一个web服务器并对外提供http服务。 导入模块 const http require(http)创建服务 Node.js可以快速创建服务基于createServer方法。 语法 http.createServer()该方法返回一个服务器的对象基于这个对象就可以让本机接收服务请求。 通过绑定request事件就可以让服务器对象接收请求绑定语法类似于JavaScript的DOM事件绑定 server.on(require, callback)第一个参数指定要绑定的事件第二个参数为事件触发后的回调函数。require事件会监听来自外部的请求一旦收到请求就执行回调函数。 最后只需要启动服务器就可以开始接收请求了 server,listen(port, callback)第一个参数是监听的端口号表示该服务使用的端口号。如果服务器启动成功就会调用回调函数。 示例 const http require(http)// 创建 web 服务器实例 const server http.createServer() // 为服务器实例绑定 request 事件监听客户端的请求 server.on(request, function (req, res) {console.log(收到请求) }) // 启动服务器 server.listen(8080, function () { console.log(服务启动成功) })如果运行成功那么此时去浏览器访问127.0.0.1:8080就会触发回调函数输出收到请求。 在绑定事件时函数内有两个参数req和res它们分别代表请求对象和响应对象。 req请求对象包含客户端相关数据与属性 其包含两个关键属性url是客户端请求的地址method是客户端的请求方式。 server.on(request, function (req, res) {console.log(req.url)console.log(req.method) })用浏览器访问127.0.0.1:8080结果 / GET用浏览器访问127.0.0.1:8080/index.html结果 /index.html GETurl拿到的是除去主机地址后具体请求的文件路径。 res请求对象包含服务器相关数据与属性 在先前的所有操作中使用浏览器请求都是得不到结果的因为服务器根本不响应如果想要进行响应就需要res.end 方法。 server.on(request, function (req, res) {res.end(h1hello world!/h1) })此时再访问浏览器就可以得到一个文本响应 http模块发送的是HTTP响应还可以通过res.setHeader方法指定响应头的内容。 语法 res.setHeader(name, value)name指定要设置的HTTP头的名称value指定要设置的HTTP头的值 最常见的做法是响应一个html文件此时可以设置Content-Type属性来指定文件类型 res.setHeader(Content-Type, text/html; charsetutf-8);此处指定响应的类型为html文件并且编码的字符集为utf-8这样客户端浏览器就知道如何解析这样一个响应。如果不指定utf-8那么网页就无法解析中文。
http://www.hkea.cn/news/14570493/

相关文章:

  • 做相亲网站 一年赚千万wordpress菜单文章列表
  • 做原油的网站seo查询seo优化
  • 懒人凳子网站建设策划书黄骅市网站建设公司
  • 电商网站 投诉建站网站赚钱吗
  • 信誉好的龙岗网站制作wordpress重命名
  • 柳州做网站的公司有哪些订阅号可以做网站链接吗
  • 电子商务网站开发的流程图宁波seo是什么意思
  • 建行移动门户网站相机网站建设策划书
  • 男女做暖暖视频网站html 网站建设中模板
  • 钓鱼转转网站在线生成软件网站开发设计费 怎么入账
  • wordpress中文建站中国国音电商平台官网
  • 建设公司网站的内容西安网站建设方案
  • 北京自助模板建站houzz室内设计官网
  • 网页设计培训班一般多少人seo优化软件哪个好
  • 建设维护网站运营方案网站只做优化
  • 网站制作 火星科技如何做一个网站推广自己的产品
  • 大公司网站建设建网站企业网站实名制
  • 凤冈建设局网站广州建站网络推广公司
  • 昆山网站建设义搏网络优化工作内容
  • 河南省建设网站wordpress主题包下载
  • 建网站一般多少钱什么广告推广最有效果
  • 潇朋友免费班级网站建设系统做网站费用计入什么
  • 网站建设行业新闻做网站都要买服务器吗
  • 怎么查一个网站的外链和反链软件网络工程技术就业前景
  • 局域网视频网站建设微信公众号怎么创建第二个
  • 做网站的客户校园网络建设方案设计
  • 网站建设进度表模板wap网页设计
  • asp网站建设 win7易语言可以做网站吗
  • wordpress 文件存储seo搜索引擎优化人员
  • 哈尔滨市住房和城乡建设局局网站qingdao城乡住房建设厅网站