1. // 导入模块
  2. const http = require('http')
  3.  
  4. // 创建web服务器实例
  5. const server = http.createServer()
  6.  
  7. // 为服务器实例绑定request事件,监听客户端请求
  8. server.on('request', function (req, resp) {
  9. console.log("Someone visit our web server.");
  10. })
  11.  
  12. // 启动服务器
  13. server.listen(8080, function () {
  14. console.log("server running at http://120.0.0.1:8080");
  15. })
  1. // 导入模块
  2. const http = require('http')
  3.  
  4. // 创建web服务器实例
  5. const server = http.createServer()
  6.  
  7. server.on('request', (req) => {
  8. const url = req.url
  9. const method = req.method
  10. const str = `Your request url is ${url},and request method is ${method}`
  11. console.log(str);
  12. })
  13.  
  14. // 启动服务器
  15. server.listen(8080, function () {
  16. console.log("server running at http://120.0.0.1:8080");
  17. })
  1. // 导入模块
  2. const http = require('http')
  3.  
  4. // 创建web服务器实例
  5. const server = http.createServer()
  6.  
  7. server.on('request', (req, resp) => {
  8. // 设置编码格式
  9. resp.setHeader('Content-Type', 'text/html; charset=utf-8')
  10.  
  11. const url = req.url
  12. const method = req.method
  13. const str = `你请求的url是 ${url},请求方法是 ${method}`
  14. console.log(str);
  15.  
  16. // 调用resp.end方法,响应信息
  17. resp.end(str)
  18. })
  19.  
  20. // 启动服务器
  21. server.listen(8080, function () {
  22. console.log("server running at http://120.0.0.1:8080");
  23. })
  1. const fs = require('fs')
  2. const path = require('path')
  3.  
  4. // 定义正则表达式,分别匹配style和script
  5. const regStyle = /<style>[\s\S]*<\/style>/
  6. const regScript = /<script>[\s\S]*<\/script>/
  7.  
  8. fs.readFile (path.join(__dirname, './clock/index.html'), 'utf-8', function(err, dataStr) {
  9. if (err) {
  10. return console.log("读取HTML文件失败" + err.message);
  11. }
  12.  
  13. resolveCSS(dataStr)
  14. resolveJs(dataStr)
  15. resolveHtml(dataStr)
  16. })
  17.  
  18. // 定义处理css样式的方法
  19. function resolveCSS(cssStr) {
  20. // 使用正则提取需要的内容
  21. const r1 = regStyle.exec(cssStr)
  22.  
  23. // 将提取出来的样式字符串,进行字符串的replace替换操作
  24. const newCss = r1[0].replace('<style>', '').replace('</style>', '')
  25.  
  26. // 将提取的样式,存储到index.css文件中
  27. fs.write(path.join(__dirname, "./clock/index.css"), newCss, function(err) {
  28. if (err) {
  29. return console.log("css文件写入失败" + err.message);
  30. }
  31. console.log("css文件写入成功");
  32. })
  33. }
  34.  
  35. // 定义处理js样式的方法
  36. function resolveJs(JsStr) {
  37. // 使用正则提取需要的内容
  38. const r2 = regScript.exec(JsStr)
  39.  
  40. // 将提取出来的样式字符串,进行字符串的replace替换操作
  41. const newJs = r2[0].replace('<script>', '').replace('</script>', '')
  42.  
  43. // 将提取的样式,存储到index.css文件中
  44. fs.write(path.join(__dirname, "./clock/index.js"), newJs, function(err) {
  45. if (err) {
  46. return console.log("js文件写入失败" + err.message);
  47. }
  48. console.log("js文件写入成功");
  49. })
  50. }
  51.  
  52. // 定义处理html文件的方法
  53. function resolveHtml(htmlStr) {
  54. // 将字符串调用replace方法,把内嵌的style和script替换成内联标签
  55. const newHtml = htmlStr.replace(regStyle, '<link rel="stylesheet" href="./index.css" />')
  56. .replace(regScript, '<script src="./index.js"></script>')
  57.  
  58. // 写入html文件
  59. fs.write(path.join(__dirname, './clock/index.html'), newHtml, function(err) {
  60. if (err) {
  61. return console.log("html文件写入失败" + err.message);
  62. }
  63.  
  64. console.log("文件写入成功");
  65. })
  66. }

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. 关于深搜dps

    哈哈,我又来了! 但是!今天我又带来了让人开心到窒息的 ----深搜dps 其实关于深搜,概念没啥可讲的,总结一句话概括就是:一直往下搜,直到满足条件的,再回来,沿着下一条路搜,直到把路全走完为止.. ...

  2. UIautomatorviewer连接设备报错Unexpected error while obtaining UI hierarchy

    先来看下现象哈,点击sdk/tools下uiautomatorviever.bat,点击连接设备的图标,本以为就这么简单,那你就错了: 是不是看到这个瞬间心情就不好了,那么我们该怎么解决这个问题呢,归 ...

  3. python域名200检测

    import requests import threading import queue # qianxiao996精心制作 #博客地址:https://blog.csdn.net/qq_36374 ...

  4. 4、传统三层架构与DDD分层架构

    4.传统三层架构与DDD分层架构 模型是抽象的 现实是形象的 技巧是重要的 思想是永恒的 从传统三层架构与DDD分层架构的编程演变其实是思想的演变. 传统三层架构,即用户界面层UI.业务逻辑层BAL. ...

  5. 【模板】动态 DP

    luogu传送门. 最近学了一下动态dp,感觉没有想象的难. 动态DP simple的DP是这样的: 给棵树,每个点给个权值,求一下最大权独立集. 动态DP是这样的: 给棵树,每个点给个权值还到处改, ...

  6. pytorch方面

    (113条消息) Pytorch基础:Torch.mul.Torch.mm与Torch.matmul的异同_名字填充中的博客-CSDN博客_pytorch torch.mul (111条消息) pyt ...

  7. 什么是openssl?

    在计算机网络上,OpenSSL是一个开放源代码的软件库包,应用程序可以使用这个包来进行安全通信,避免窃听,同时确认另一端连接者的身份.这个包广泛被应用在互联网的网页服务器上.

  8. java-规约-集合

    /** * 1 * @hashCode&equals的处理: * 1-只要覆写了equals,必须复写hashCode. * 2-因为Set存储的是不重复的对象,依据hashCode和equa ...

  9. kafka 如何不消费重复数据?比如扣款,我们不能重复的扣?

    其实还是得结合业务来思考,我这里给几个思路: 比如你拿个数据要写库,你先根据主键查一下,如果这数据都有了,你就别插入 了,update 一下好吧. 比如你是写 Redis,那没问题了,反正每次都是 s ...

  10. C++ - free()函数释放内存后的指针行为

    一个指针释放后不置空的后果: free(p)之后原本那块内存的数据已经被释放了,内存重新收回.但此时的指针变量依然指向那块内存,在以后的代码中若不小心继续调用指针变量,会出现不可预料的错误. 不置空的 ...