Nodejs

作者: 小子加油 | 来源:发表于2016-09-13 09:17 被阅读0次

nodejs的模块


  1. require():导入一个模块
  2. exports():导出一个模块
  3. exports()与module.exports()区别
    所有的exports收集到的属性和方法,都赋值给了 Module.exports。当然,这有个前提,就是Module.exports本身不具备任何属性和方法。如果,Module.exports已经具备一些属性和方法,那么exports收集来的信息将被忽略。

代码1:

a.js

exports.li = function(){
    console.log('Hello node!');
};

b.js

var mo = require('./a.js');
mo.li();

代码2:
a.js

function a(){
    console.log('Hello node!');
}
module.exports = a;

b.js

var mo = require('./a.js');
mo();

nodejs文件操作


Node.js 文件系统(fs 模块)模块中的方法均有异步和同步版本,例如读取文件内容的函数有异步的 fs.readFile() 和同步的 fs.readFileSync()
异步的方法函数最后一个参数为回调函数,回调函数的第一个参数包含了错误信息(error)。
建议大家是用异步方法,比起同步,异步方法性能更高,速度更快,而且没有阻塞。

  1. 异步和同步:

input.txt

测试文本hello world!

file.js

var fs = require('fs');
// 异步读取
fs.readFile('input.txt', function (err, data) {
  if (err) {
     return console.error(err);
  }
  console.log("异步读取: " + data.toString());
});

// 同步读取
var data = fs.readFileSync('input.txt');
console.log("同步读取: " + data.toString());
console.log("程序执行完毕。");

运行结果:

$ node file.js 
同步读取: 测试文本hello world!
程序执行完毕。
异步读取: 测试文本hello world!

2.打开文件

文件打开方式:

  r 以读取模式打开文件。如果文件不存在抛出异常。
  r+   以读写模式打开文件。如果文件不存在抛出异常。
  rs   以同步的方式读取文件。
  rs+  以同步的方式读取和写入文件。
  w    以写入模式打开文件,如果文件不存在则创建。
  wx   类似 'w',但是如果文件路径存在,则文件写入失败。
  w+   以读写模式打开文件,如果文件不存在则创建。
  wx+  类似 'w+', 但是如果文件路径存在,则文件读写失败。
  a 以追加模式打开文件,如果文件不存在则创建。
  ax   类似 'a', 但是如果文件路径存在,则文件追加失败。
  a+   以读取追加模式打开文件,如果文件不存在则创建。
  ax+  类似 'a+', 但是如果文件路径存在,则文件读取追加失败。

代码:

var fs = require('fs');
//异步打开文件
console.log('准备打开文件');
fs.open('input.txt','r+',function(err,fd){
    if(err){
        return console.err(err);
    }
    console.log('文件打开成功');
})

3.获取文件信息(判断是否为文件)

var fs = require("fs");
console.log("准备打开文件!");
fs.stat('input.txt', function (err, stats) { 
    if (err) {
       return console.error(err);
     } 
    console.log(stats);
    console.log("读取文件信息成功!"); 
    // 检测文件类型 console.log("是否为文件(isFile) ? " + stats.isFile()); 
    console.log("是否为目录(isDirectory) ? " + stats.isDirectory());
});

4.写入文件
file.js

var fs = require("fs");
console.log("准备写入文件");
fs.writeFile('input.txt', '我是通过写入的文件内容!',  function(err) {
    if (err) {
       return console.error(err);
     }
     console.log("数据写入成功!");
     console.log("--------我是分割线-------------")
     console.log("读取写入的数据!");
     fs.readFile('input.txt', function (err, data) {
        if (err) {
           return console.error(err);
        }
        console.log("异步读取文件数据: " + data.toString());
     });
});

运行结果

$ node file.js 
 准备写入文件数据写入成功!
--------我是分割线-------------
读取写入的数据!
异步读取文件数据: 我是通过写入的文件内容

5.读取文件

var fs = require("fs");
var buf = new Buffer(1024);
console.log("准备打开已存在的文件!");
fs.open('input.txt', 'r+', function(err, fd) {
   if (err) {
       return console.error(err);
   } 
   console.log("文件打开成功!");
   console.log("准备读取文件:");
   fs.read(fd, buf, 0, buf.length, 0, function(err, bytes){
       if (err){
          console.log(err);
       }
       console.log(bytes + "  字节被读取");
       // 仅输出读取的字节
       if(bytes > 0){
           console.log(buf.slice(0, bytes).toString());
       }
   });
});

nodejs的IO键盘交互


var readline = require('readline');
const rl = readline.createInterface({
    input:process.stdin,
    output:process.stdout
});
rl.setPrompt('请和键盘交互:');
rl.prompt();
rl.on('line',(line)=>{
    var str = line.trim();
    console.log('你输入的是:'+str);
    rl.prompt();
}).on('close',()=>{
    console.log('exit');
    process.exit(0);
});

nodejs的URL判断渲染模板


var http = rquire('http');
var fs = require('fs');
var urlapi = require('url');
http.createServer(function(request,response){
    //解析请求的url
    var url = urlapi.parse(request.url);
    console.log(url.pathname);
    console.log(request.url);
}).listen(3000,'127.0.0.1');

nodejs实现IO键盘交互或浏览器输入交互
nodejs判断url请求渲染2个简单的模板
写3个静态的页面,首页,列表页,详情页

相关文章

  • nodejs 到底是什么?

    理解 NodeJs Nodejs 自己使用了Openssl.在Nodejs 0.6之前, Nodejs是动态链接到...

  • centos7.3安装vue-cli

    1、安装vue需要安装nodejs,先去nodejs官网下载nodejs,https://nodejs.org/e...

  • NodeJS-简介&配置

    NodeJS-简介&配置 NodeJS NodeJS 中文网 NodeJS API 一、客户端的JavaScrip...

  • gulp最佳入门@小四

    一、安装nodeJs 说明:gulp是基于nodeJS,理所当然需要安装nodeJS; 安装:打开nodejs官网...

  • 项目构建---全步骤

    nodeJS安装 1.使用bower必须要安装nodeJS,因为bower就是用nodeJS编写的,nodeJS是...

  • 笔记 第六天 nodejs模块

    nodejs模块 nodejs 的文件操作 nodejs的io键盘交互 nodejs的url判断渲染模板 node...

  • nodeJs的下载及安装

    一、下载nodeJs 1. nodeJs的下载路径 (1)nodeJs官网:http://nodejs.cn/(2...

  • nodejs笔记

    nodejs教程 :http://www.runoob.com/nodejs/nodejs-tutorial.ht...

  • Cordova入门配置

    [TOC] Cordova 安装 安装NodeJS下载NodeJS https://nodejs.org/en/...

  • NodeJS 学习资料

    nodejs资源汇总(新手)从零开始nodejs系列文章Nodejs提炼与升华(一) 前言、Nodejs简介Nod...

网友评论

      本文标题:Nodejs

      本文链接:https://www.haomeiwen.com/subject/floyettx.html