>>1、模块:一个文件即为一个模块

1)global可以声明全局变量 (跨模块)

例如:global a = 100;

console.log(global.a);   //输出100

2)module对象:当前模块的filename、子模块等信息

3)module.expors.obj  //将obj对象声明为全局对象

4)__filename :当前模块的路径

5)A模块访问B模块变量的方法(A模块已经加载B模块):

a、global.v=value; //不推荐

b、module.expors.v

>>2、模块加载:require(‘fs’);

1)路径_查找步骤

a、文件在硬盘的相对/绝对路径 =>加载对应文件

b、无路径只有文件名  => 加载node核心模块或者node_modules下

例如:require(‘main.js’);

2)后缀_查找步骤

a、首先安装加载的文件名称加载

b、如果没有查找到则在文件名后加.js后缀

c、添加.json后缀

e、加.node后缀

f、报错

>>3、文件操作

先引入文件模块:var fs = require(‘fs’);

1)、写文件

例:(同步方式)

var write_file = function(_info){
fpath = process.cwd()+"\\option.json"; //指定目标文件
file = fs.openSync(fpath,"a"); //打开文件(同步、追加方式、若不存在则创建)
infoString = JSON.stringify(_info); //对象转json
fs.writeFile(file,infoString,function(){ //写入文件
if(err){ //有错报错
return console.error(err);
}
});
}

附文件打开方式:

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

2)、读文件

fs.read(fd, buffer, offset, length, position, callback)     //异步方式

3)、关闭文件

fs.close(fd, callback)

这块我就不啰嗦了,手册是个好东西

>>4、模板引擎的配置和使用

var express = require("express");  //当然要先包含模板引擎模块
var swig = require("swig"); //加载模板处理模块
var app = express(); //创建app //1)、定义要使用的模块
app.engine('html',swig.renderFile); //engine(“模板后缀”,“用于解析处理模板内容的方法”)
//2)、设置模板文件存放的目录
app.set("views","./views"); //set(“必须是views”,“目录”)
//3)、注册所使用的模板引擎
app.set("view engine","html"); //set("","") 未完,待续……

学习nodejs的一点笔记的更多相关文章

  1. phpunit测试学习 1:一点简单的扼要有用的东西的总结 一点入门认识

    16:45 2015/12/8phpunit测试学习 1:一点简单的扼要有用的东西的总结  一点入门认识 具体的入门安装和入门实践请参照文中的推荐博客或网上其他博客推荐博客,我感觉这几篇博客写得很不错 ...

  2. canvas学习之API整理笔记(二)

    前面我整理过一篇文章canvas学习之API整理笔记(一),从这篇文章我们已经可以基本了解到常用绘图的API.简单的变换和动画.而本篇文章的主要内容包括高级动画.像素操作.性能优化等知识点,讲解每个知 ...

  3. 学习Nodejs之mysql

    学习Nodejs连接mysql数据库: 1.先安装mysql数据库 npm install mysql 2.测试连接数据库: var sql = require("mysql"); ...

  4. 学习Logistic Regression的笔记与理解(转)

    学习Logistic Regression的笔记与理解 1.首先从结果往前来看下how logistic regression make predictions. 设我们某个测试数据为X(x0,x1, ...

  5. 我是如何学习NodeJs

    实际上在开始的时候我已经对NodeJS有了一定的了解. 比如我知道它是居于Javascript语言的服务器端web Server,比如我知道它的优势在于它的性能,而造成性能优异的原因在于高效的V8引擎 ...

  6. 学习javascript 的一点感想

    原文:学习javascript 的一点感想 //动态性是指,在一个Javascript对象中,要为一个属性赋值,我们不必事先创建一个字段,只需要在使用的时候做赋值操作即可,如下例:var obj=ne ...

  7. 初步学习nodejs,业余用node写个一个自动创建目录和文件的小脚本,希望对需要的人有所帮助

    初步学习nodejs,业余用node写个一个自动创建目录和文件的小脚本,希望对需要的人有所帮助,如果有bug或者更好的优化方案,也请批评与指正,谢谢,代码如下: var fs = require('f ...

  8. 关于最小生成树,拓扑排序、强连通分量、割点、2-SAT的一点笔记

    关于最小生成树,拓扑排序.强连通分量.割点.2-SAT的一点笔记 前言:近期在复习这些东西,就xjb写一点吧.当然以前也写过,但这次偏重不太一样 MST 最小瓶颈路:u到v最大权值最小的路径.在最小生 ...

  9. 转载-《Python学习手册》读书笔记

    转载-<Python学习手册>读书笔记 http://www.cnblogs.com/wuyuegb2312/archive/2013/02/26/2910908.html

  10. python学习第五次笔记

    python学习第五次笔记 列表的缺点 1.列表可以存储大量的数据类型,但是如果数据量大的话,他的查询速度比较慢. 2.列表只能按照顺序存储,数据与数据之间关联性不强 数据类型划分 数据类型:可变数据 ...

随机推荐

  1. Java8之list.stream的常见使用

    本文转自 https://blog.csdn.net/jhgnqq/article/details/123679622 感谢楼主分享 import org.junit.Before; import o ...

  2. Q:查看锁表进程,及杀死所有锁表进程sql

     查看锁表进程 SELECT DISTINCT decode(s.inst_id, 1, 'DB1', 2, 'DB2') 数据库服务器, decode(s.BLOCKING_SESSION, '', ...

  3. ssh免密登录,服务器互信。

    1.ssh-keygen 产生本主机的公钥和私钥. ssh-keygen -t rsa 文件保存在 ~/.ssh/目录下,其中 id_rsa:本地服务器的私钥 id_rsa.pub:本地服务器的公钥 ...

  4. FLink自定义Sink,生产的数据导出到mysql

    一.自定义生产数据 https://www.cnblogs.com/robots2/p/16048729.html 二.生产转化数据,导出到mysql 2.1 建表语句 CREATE TABLE `v ...

  5. 如何正确配置 .gitignore 以忽略特定文件夹下的文件(除指定子文件夹外)

    在使用 Git 进行版本控制时,.gitignore 文件是一个非常有用的工具,可以帮助我们忽略不需要跟踪的文件或文件夹.然而,有时我们需要忽略某个文件夹下的所有内容,但保留其中的某个子文件夹.本文将 ...

  6. mysql外部访问踩坑

    起因 项目用.Net开发,在mac上运行,可能是版本问题,想试试在windows下部署,就用parallels起了个windows,但windows却无法连接宿主mac上的mysql,最后折腾了一天才 ...

  7. 推荐一个DeepSeek 大模型的免费 API 项目!兼容OpenAI接口!

    在AI技术飞速发展的今天,大语言模型(LLM)的应用越来越广泛,但高昂的使用成本常常让个人开发者和小型团队望而却步.今天,我要为大家介绍一个非常实用的开源项目--DeepSeek-Free-API,它 ...

  8. Arduino部分C语言含义之--“::”

    "::"在C++中表示作用域,和所属关系."::"是运算符中等级最高的.有三种作用. 1.作用域符号例如:A,B表示两个类,在A,B中都有成员member.那么 ...

  9. 安装mysql报错5.7.13-Table 'mysql.user' doesn't existFor more information

    临时写的一个小系统客户要求用mysql,所以下载一个来研究下.解压后开始配置my.ini 配置my.ini [mysql]# 设置mysql客户端默认字符集default-character-set= ...

  10. Qt 重载QComboBox,实现右侧删除键

    文章目录 Qt 重载QComboBox,实现右侧删除键 前言 方案 设置下拉箭头图标 设置QComboBox内容为空 自定义showPopup函数 定位鼠标 屏蔽鼠标右键 最终控制下拉代码 效果图 代 ...