NodeJs学习日报——day3
// 导入模块
const http = require('http') // 创建web服务器实例
const server = http.createServer() // 为服务器实例绑定request事件,监听客户端请求
server.on('request', function (req, resp) {
console.log("Someone visit our web server.");
}) // 启动服务器
server.listen(8080, function () {
console.log("server running at http://120.0.0.1:8080");
})
// 导入模块
const http = require('http') // 创建web服务器实例
const server = http.createServer() server.on('request', (req) => {
const url = req.url
const method = req.method
const str = `Your request url is ${url},and request method is ${method}`
console.log(str);
}) // 启动服务器
server.listen(8080, function () {
console.log("server running at http://120.0.0.1:8080");
})
// 导入模块
const http = require('http') // 创建web服务器实例
const server = http.createServer() server.on('request', (req, resp) => {
// 设置编码格式
resp.setHeader('Content-Type', 'text/html; charset=utf-8') const url = req.url
const method = req.method
const str = `你请求的url是 ${url},请求方法是 ${method}`
console.log(str); // 调用resp.end方法,响应信息
resp.end(str)
}) // 启动服务器
server.listen(8080, function () {
console.log("server running at http://120.0.0.1:8080");
})
const fs = require('fs')
const path = require('path')
// 定义正则表达式,分别匹配style和script
const regStyle = /<style>[\s\S]*<\/style>/
const regScript = /<script>[\s\S]*<\/script>/
fs.readFile (path.join(__dirname, './clock/index.html'), 'utf-8', function(err, dataStr) {
if (err) {
return console.log("读取HTML文件失败" + err.message);
}
resolveCSS(dataStr)
resolveJs(dataStr)
resolveHtml(dataStr)
})
// 定义处理css样式的方法
function resolveCSS(cssStr) {
// 使用正则提取需要的内容
const r1 = regStyle.exec(cssStr)
// 将提取出来的样式字符串,进行字符串的replace替换操作
const newCss = r1[0].replace('<style>', '').replace('</style>', '')
// 将提取的样式,存储到index.css文件中
fs.write(path.join(__dirname, "./clock/index.css"), newCss, function(err) {
if (err) {
return console.log("css文件写入失败" + err.message);
}
console.log("css文件写入成功");
})
}
// 定义处理js样式的方法
function resolveJs(JsStr) {
// 使用正则提取需要的内容
const r2 = regScript.exec(JsStr)
// 将提取出来的样式字符串,进行字符串的replace替换操作
const newJs = r2[0].replace('<script>', '').replace('</script>', '')
// 将提取的样式,存储到index.css文件中
fs.write(path.join(__dirname, "./clock/index.js"), newJs, function(err) {
if (err) {
return console.log("js文件写入失败" + err.message);
}
console.log("js文件写入成功");
})
}
// 定义处理html文件的方法
function resolveHtml(htmlStr) {
// 将字符串调用replace方法,把内嵌的style和script替换成内联标签
const newHtml = htmlStr.replace(regStyle, '<link rel="stylesheet" href="./index.css" />')
.replace(regScript, '<script src="./index.js"></script>')
// 写入html文件
fs.write(path.join(__dirname, './clock/index.html'), newHtml, function(err) {
if (err) {
return console.log("html文件写入失败" + err.message);
}
console.log("文件写入成功");
})
}
NodeJs学习日报——day3的更多相关文章
- NodeJs学习日报day8——接口编写
今天看了黑马NodeJs中关于接口编写以及跨域问题的视频
- NodeJs学习日报day9——操作数据库
const mysql = require('mysql') const db = mysql.createPool({ // 数据库的ip地址 host: 'localhost', user: 'r ...
- NodeJs学习日报day7——简单中间件
const express = require('express') const app = express() const mw = function(req, resp, next) { cons ...
- NodeJs学习日报day6——路由模块
const express = require('express') const app = express() app.get('/user', function(req, resp) { resp ...
- NodeJs学习日报day5——导入模块
const { match } = require("assert") function dateFormat(dataStr) { const dt = new Date(dat ...
- NodeJS学习日报day4——模块化
// console.log(module); // 执行顺序不同,结果也不同 // module.exports = { // name : 'Cra2iTeT', // hi() { // con ...
- Nodejs学习路线图
前言 用Nodejs已经1年有余,陆陆续续写了48篇关于Nodejs的博客文章,用过的包有上百个.和所有人一样,我也从Web开发开始,然后到包管 理,再到应用系统的开发,最后开源自己的Nodejs项目 ...
- Nodejs学习笔记(四)——支持Mongodb
前言:回顾前面零零碎碎写的三篇挂着Nodejs学习笔记的文章,着实有点名不副实,当然,这篇可能还是要继续走着离主线越走越远的路子,从简短的介绍什么是Nodejs,到如何寻找一个可以调试的Nodejs ...
- Nodejs学习笔记(三)——一张图看懂Nodejs建站
前言:一条线,竖着放,如果做不到精进至深,那就旋转90°,至少也图个幅度宽广. 通俗解释上面的胡言乱语:还没学会爬,就学起走了?! 继上篇<Nodejs学习笔记(二)——Eclipse中运行调试 ...
随机推荐
- 关于DP动规
今天学了动规,简单记录一下自己理解了的:(要不俺就忘了) 首先,啥是DP??? 动态规划,其实就是组合子问题的解来解决整个问题的解,由于每个子问题他只判断一次,所以不会重复计算,那就很牛啊!!! 专业 ...
- [SPDK/NVMe存储技术分析]004 - SSD设备的发现
源代码及NVMe协议版本 SPDK : spdk-17.07.1 DPDK : dpdk-17.08 NVMe Spec: 1.2.1 基本分析方法 01 - 到官网http://www.spdk.i ...
- Apache HTTPD 未知后缀解析漏洞
环境搭建 https://blog.csdn.net/qq_36374896/article/details/84102101 该环境版本: PHP 7.x 最新版 Apache HTTPD 2.4. ...
- 09自动售货机综设实验(含按键消抖,led和状态机)
一设计功能 1.上次状态机的练习 2这次自动售货机综设 (一)对比两次的售货机 上次售货机的关键是画出状态转移图.明确输入分几种,输出是啥,有哪些状态.如下图所示 (二)系统或综合设计的经验: 既然这 ...
- mock axios vue的数据传递关系
最近有一个项目要快速出一个前端demo,选择了vue-element框架(虽然其实很想用react,但是为了求快) 本人的基础只有初级的html/css/js知识,和python后端的一些简单工作,和 ...
- 安装docker-compose 报错解决
- JavaScript中call如何使用?
一句话概括:call是函数才能调用的方法.作用是改变属性环境.有点绕,举个例子. 此处代码是在window环境下声明的变量和函数. var name='王延朋'; var age=18; var ex ...
- Oracle入门基础(一)一一基本查询
SQL> --当前用户 SQL> show user SQL> --当前用户下的表 SQL> select * from tab; TNAME TABTYPE CLUSTERI ...
- 【Visual Studio】VS 提示图标的含义
一.前言 vs 中提示图标是什么意思 二.正文 信号图标 以下信号图标应用于所有原有的图标并指示它们的辅助功能. 图标 描述 <No Signal Icon> Public. 可从此组件中 ...
- .NET面试题整理
.NET..NET Framework..NET Core和C#的解释各是什么? ASP.NET MVC和ASP.NET Web API的区别是什么? C#中的委托是什么?事件是不是一种委托? 简述P ...