// 导入模块
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的更多相关文章

  1. NodeJs学习日报day8——接口编写

    今天看了黑马NodeJs中关于接口编写以及跨域问题的视频

  2. NodeJs学习日报day9——操作数据库

    const mysql = require('mysql') const db = mysql.createPool({ // 数据库的ip地址 host: 'localhost', user: 'r ...

  3. NodeJs学习日报day7——简单中间件

    const express = require('express') const app = express() const mw = function(req, resp, next) { cons ...

  4. NodeJs学习日报day6——路由模块

    const express = require('express') const app = express() app.get('/user', function(req, resp) { resp ...

  5. NodeJs学习日报day5——导入模块

    const { match } = require("assert") function dateFormat(dataStr) { const dt = new Date(dat ...

  6. NodeJS学习日报day4——模块化

    // console.log(module); // 执行顺序不同,结果也不同 // module.exports = { // name : 'Cra2iTeT', // hi() { // con ...

  7. Nodejs学习路线图

    前言 用Nodejs已经1年有余,陆陆续续写了48篇关于Nodejs的博客文章,用过的包有上百个.和所有人一样,我也从Web开发开始,然后到包管 理,再到应用系统的开发,最后开源自己的Nodejs项目 ...

  8. Nodejs学习笔记(四)——支持Mongodb

    前言:回顾前面零零碎碎写的三篇挂着Nodejs学习笔记的文章,着实有点名不副实,当然,这篇可能还是要继续走着离主线越走越远的路子,从简短的介绍什么是Nodejs,到如何寻找一个可以调试的Nodejs ...

  9. Nodejs学习笔记(三)——一张图看懂Nodejs建站

    前言:一条线,竖着放,如果做不到精进至深,那就旋转90°,至少也图个幅度宽广. 通俗解释上面的胡言乱语:还没学会爬,就学起走了?! 继上篇<Nodejs学习笔记(二)——Eclipse中运行调试 ...

随机推荐

  1. spring——通过xml文件配置IOC容器

    创建相关的类(这里是直接在之前类的基础上进行修改) package com.guan.dao; public interface Fruit { String getFruit(); } packag ...

  2. TetBrains产品快捷键大全

     快捷键大全

  3. 进制转换 Java day6

    今天周末学习的不多,只学习了一些二进制转十进制,八进制.十六进制,以及数据单位 二进制转十进制 我们都知道十进制转二进制就是除以2取余的方法.那二进制转到十进制又如何处理呢,今天我来学习以下 我们看看 ...

  4. 配置文件 /etc/profile出错导致ls,vi不能用

    配置文件 /etc/profile出错导致ls,vi不能用   关于 Linux 的配置文件 /etc/profile 路径出错后相关的命令失效解决方式(如:ls,vi不能用)   一般我记得vi是在 ...

  5. Redis的数据类型操作(二)

    1.String:key-value(做缓存) Redis中所有的数据都是字符串.命令不区分大小写,key是区分大小写的.Redis是单线程的.Redis中不适合保存内容大的数据. get.set.i ...

  6. 怎样在方法里面得到Request,或者Session?

    直接在方法的形参中声明request,SpringMvc就自动把request对象传入.

  7. Web,RESTful API 在微服务中的作用是什么?

    微服务架构基于一个概念,其中所有服务应该能够彼此交互以构建业务功能.因 此,要实现这一点,每个微服务必须具有接口.这使得 Web API 成为微服务的一 个非常重要的推动者.RESTful API 基 ...

  8. Spring与Web项目整合的原理

    引言: 在刚开始我们接触IOC时,我们加载并启用SpringIOC是通过如下代码手动加载 applicationContext.xml 文件,new出context对象,完成Bean的创建和属性的注入 ...

  9. 学习MFS(一)

    MFS概述 MooseFS,是一个具备冗余容错功能的分布式网络文件系统,它将数据分别存放在多个物理server或单独disk或partition上,确保一份数据有多个备份副本,对于访问MFS的clie ...

  10. centos简单命令备忘

    1.查看当前目录 [root@instance-aif30iaj bin]# df -h 2.查看指定目录 在命令后直接放目录名,比如查看"usr"目录使用情况: [root@in ...