zhanghaoran
文章 文章详情

learn node.js NO.1: fs,http,module

阅读:77 分类:Node.js 发布时间:2020-06-09

node.js 是什么

node.js是运行在服务端的JavaScript。

node中没有dom,bom,window。

运行: node xxx.js

fs 操作文件

读取文件

var fs = require('fs')

fs.readFile('./data/a.txt',function(err,data){
   if(err){
        console.log('文件读取失败', err);
   }
    else{
         console.log(data.toString());
    }
})

写入文件

var fs = require('fs');

fs.writeFile('./data/b.txt','写入的内容',function(err,data){
   if(err){
        console.log('文件写入失败');
   }
    else{
         console.log(data.toString());
    }
})

http

简单基础的HTTP服务

var http = require('http')

// 使用http.createServer创建服务
var server = http.createServer();

// 监听请求(request)事件
server.on('request', function(){
    console.log('hello word')
})
// 绑定端口,启动服务
server.listen(3000, funvction(){
    console.log('server start... port by 3000')
})

设置响应头+文件读写+简易路由分发

var http = require('http')
var fs = require('fs')

// 使用http.createServer创建服务
var server = http.createServer();

// 监听请求(request)事件
server.on('request', function(req, res){
    if(req.url == '/'){
        // 返回index.html
        fs.readFile('../resoure/index.html',function(err, data){
            if(err){
                // 正常文本响应头设置
                res.setHeader('Content-Type', 'text/plain; charset=utf-8');
                res.end('读取文件是失败。原因:', err);
            }else{
                // 响应头设置返回类型为html格式
                res.setHeader('Content-Type', 'text/html, charset=utf-8');
                res.end(data)
            }
        })
    }else if(req.url == 'img.jpg'){
        fs.readFile('../resoure/img.jpg', function(err, data){
            if(err){
                // 正常文本响应头设置
                res.setHeader('Content-Type', 'text/plain; charset=utf-8');
                res.end('读取文件是失败。原因:', err);
            }else{
                // 图片不需要指定编码格式
                res.setHeader('Content-Type', 'image/jpeg');
                res.end(data);
            }
        })
    }
})
// 绑定端口,启动服务
server.listen(3000, funvction(){
    console.log('server start... port by 3000')
})

module 模块

为了让Node.js的文件可以相互调用,Node.js提供了一个简单的模块系统。
模块是Node.js 应用程序的基本组成部分,文件和模块是一一对应的。换言之,一个 Node.js 文件就是一个模块,这个文件可能是JavaScript 代码、JSON 或者编译过的C/C++ 扩展

加载 require

var 变量名称 = require('模块名称')

执行被加载模块中的代码
得到被加载模块中的exports导出接口对象

导出 exports

  • Node中是模块作用域,默认文件中所有的成员只在当前模块有效
  • 对于希望可以被其他模块访问到的成员,我们需要把这些公开的成员都挂载到exports接口对象中就可以了;
导出多个成员(对象):
exports.a = 'hello';
experts.b = function(){
    console.log('bbb')
}
导出单个成员(函数,字符串):
module.exports = 'hello';

占坑: 初学了解的不全面,后续再加。


参考: nodeJS学习笔记.md