zoukankan      html  css  js  c++  java
  • node.js实际应用【readFile在on里面还是外面】

    1. readFile在外面,修改文件要重启服务才能更新
    var fs = require('fs')
    var jsonDate = '';
    fs.readFile('book.json',function(error,data){
        // console.log(data.toString())
        jsonDate = JSON.parse(data.toString());
    })
    
    var http =require('http');
    var server =http.createServer();
    server.on('request',function(request, response){
        // console.log(request.url);
        // response.write('hello');
        // response.write(' word');
        // response.end(); 
        response.end(JSON.stringify(jsonDate));  // end支持二进制,可以不用toString转换
    });
    server.listen(3000,function(){
        console.log('开启成功的回调函数!');
    }); 
    
    1. readFile在里面,修改文件不需要重启
    // 1. 结合 fs 发送文件中的数据
    // 2. Content-Type
    //    http://tool.oschina.net/commons
    //    不同的资源对应的 Content-Type 是不一样的
    //    图片不需要指定编码
    //    一般只为字符数据才指定编码
    
    var http = require('http')
    var fs = require('fs')
    
    var server = http.createServer()
    
    server.on('request', function (req, res) {
      // / index.html
      var url = req.url
    
      if (url === '/') {
        // 肯定不这么干
        // res.end('<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>Document</title></head><body><h1>首页</h1></body>/html>')
    
        // 我们要发送的还是在文件中的内容
        fs.readFile('./resource/index.html', function (err, data) {
          if (err) {
            res.setHeader('Content-Type', 'text/plain; charset=utf-8')
            res.end('文件读取失败,请稍后重试!')
          } else {
            // data 默认是二进制数据,可以通过 .toString 转为咱们能识别的字符串
            // res.end() 支持两种数据类型,一种是二进制,一种是字符串
            res.setHeader('Content-Type', 'text/html; charset=utf-8')
            res.end(data)
          }
        })
      } else if (url === '/xiaoming') {
        // url:统一资源定位符
        // 一个 url 最终其实是要对应到一个资源的
        fs.readFile('./resource/ab2.jpg', function (err, data) {
          if (err) {
            res.setHeader('Content-Type', 'text/plain; charset=utf-8')
            res.end('文件读取失败,请稍后重试!')
          } else {
            // data 默认是二进制数据,可以通过 .toString 转为咱们能识别的字符串
            // res.end() 支持两种数据类型,一种是二进制,一种是字符串
            // 图片就不需要指定编码了,因为我们常说的编码一般指的是:字符编码
            res.setHeader('Content-Type', 'image/jpeg')
            res.end(data)
          }
        })
      }
    })
    
    server.listen(3000, function () {
      console.log('Server is running...')
    })
    
  • 相关阅读:
    记录日常Linux常用软件
    CentOS7.2重置root密码的处理方法
    Nginx配置文件详细说明
    ES项目实战
    foreachRDD
    Hive的数据倾斜
    SparkStreaming实战(数据库(NoSQL))
    Spark(4)
    SparkStreming中 `transform()`算子的 的使用
    RDD源码分析
  • 原文地址:https://www.cnblogs.com/amize/p/14833666.html
Copyright © 2011-2022 走看看